{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# -*- coding:utf-8 -*-  \n",
    "\n",
    "\n",
    "import pandas as pd \n",
    "import matplotlib.pylab as plt\n",
    "import numpy as np\n",
    "\n",
    "train=pd.read_csv('E:/medical/d_train_20180102.csv',index_col=None,encoding='gb2312')#改了编码文件名中不能有汉字\n",
    "test=pd.read_csv('E:/medical/d_test_A_20180102.csv',index_col=None,encoding='gb2312')\n",
    "# test=pd.read_excel('../data/testA.xlsx',index_col=0,encoding='utf-8')\n",
    "train1=train.copy();test1=test.copy()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1681\n"
     ]
    }
   ],
   "source": [
    "d_i=[]\n",
    "for i in range(len(train)):\n",
    "\n",
    "    if (i%4==0 ) & (train.iloc[i,-1]<7):##2,5,12,20\n",
    "        d_i.append(i)\n",
    "print(len(d_i))        \n",
    "train.drop(d_i,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df=train[(train['血糖']>6.5)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df=train[(train['甘油三酯']>0)|(train['血糖']>7)&(train['甘油三酯']>0)]##一次"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train=pd.concat([train,df],keys=None)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\na0T7lb7j0dt74XrHMaV0d4/vA81Uk5Liitqxf9t454IwB6a+Ub+jPnfunFatWqXi4mItW7ZMkjRn\nzhy1tbVJklpaWjR37lylp6ervb1dAwMD6uvrU1dXl9xutzIzM9Xc3Bzqm5WVNcnDAQBgahl1Rb17\n9259/fXXqq2tDX2//Pzzz2vbtm2qrq5WWlqa8vLyFBsbq/z8fPl8PlmWpaKiIsXHx8vr9aqkpERe\nr1dxcXGqqqoKy6AAAJgqRg3qsrIylZWVXdO+d+/ea9o8Ho88Hs+ItoSEBNXU1NxkiQAARC8ueAIA\ngMEIagAADEZQAwBgMIIaAACDEdQAABiMoAYAwGAENQAABiOoAQAwGEENAIDBCGoAAAxGUAMAYDCC\nGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMBhBDQCAwQhqAAAMRlADAGAwghoAAIMR1AAAGIygBgDA\nYAQ1AAAGI6gBADAYQQ0AgMEIagAADGaPdAEAwmNoaEibN2/WqVOnNDg4qIKCAt19990qLS2VzWbT\n7NmzVVFRoZiYGDU2NqqhoUF2u10FBQXKzc1Vf3+/iouL1dPTI6fTqcrKSiUnJ0d6WMCUx4oaiBLv\nvfeepk+fLr/fr9dff11bt27V9u3bVVhYKL/fL8uy1NTUpO7ubtXV1amhoUF79uxRdXW1BgcHVV9f\nL7fbLb/fryVLlqi2tjbSQwKiAitqIEo8/PDDysvLkyRZlqXY2Fh1dHQoOztbkpSTk6NDhw4pJiZG\nGRkZcjgccjgcSk1NVWdnp9rb27V69epQX4IaCA+CGogSTqdTkhQIBLRhwwYVFhaqsrJSNpsttL2v\nr0+BQEAul2vE8wKBwIj2K33HMmPGNNntsTdde0qKa+xOhjKldlPqGA01fjeCGogiZ86c0bp16+Tz\n+bR48WLt3LkztC0YDCopKUmJiYkKBoMj2l0u14j2K33H0tt74aZrTklxqbt77A8FpjKh9lthDqO9\nxtE+APAdNRAlzp07p1WrVqm4uFjLli2TJM2ZM0dtbW2SpJaWFs2dO1fp6elqb2/XwMCA+vr61NXV\nJbfbrczMTDU3N4f6ZmVlRWwsQDRhRQ1Eid27d+vrr79WbW1t6Pvl559/Xtu2bVN1dbXS0tKUl5en\n2NhY5efny+fzybIsFRUVKT4+Xl6vVyUlJfJ6vYqLi1NVVVWERwREB4IaiBJlZWUqKyu7pn3v3r3X\ntHk8Hnk8nhFtCQkJqqmpmbT6AHw3gtpAq3bsn7DXeqP0wQl7LQBA+PEdNQAABhtXUB87dkz5+fmS\npBMnTsjr9crn86miokLDw8OSpMbGRi1dulQej0cHDhyQJPX392v9+vXy+Xxas2aNzp8/P0nDAABg\nahozqF977TWVlZVpYGBAkriSEQAAYTRmUKempurll18OPf72lYxaW1t1/Pjx0JWMXC7XiCsZLViw\nINT38OHDkzQMAACmpjFPJsvLy9PJkydDjy3LmtQrGUkTdzUj3BpX+vmmW63eycRcAJBu4KzvmJir\ni/DJuJKRNDFXM8L/mH6ln2+6Fa5MFC7jnQvCHJj6rvusb65kBABA+Fz3irqkpETl5eVcyQgAgDAY\nV1DPnDlTjY2NkqRZs2ZxJSMAAMKEC54AAGAwghoAAIMR1AAAGIygBgDAYAQ1AAAGI6gBADAYQQ0A\ngMEIagAADEZQAwBgMIIaAACDEdQAABiMoAYAwGAENQAABiOoAQAw2HXfjxoAMH6rduyfkNd5o/TB\nCXkd3HoI6imO/yQA4NbGoW8AAAxGUAMAYDCCGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMBhBDQCA\nwQhqAAAMxpXJMC4TdYUziaucAcD1YEUNAIDBCGoAAAzGoW8AuAXw9VP0YkUNAIDBCGoAAAzGoW+E\n3UQewpsIHAYEYDJW1AAAGIwVNaIeJ+kAMBlBDQBRZqI+nPLBNDw49A0AgMEmfUU9PDysF154Qf/8\n5z/lcDi0bds23XnnnZP9tkBETNRK5Y9VP5qQ15lok7E/m3ZyIcZvIv/tTP2dN8Gkr6j/+te/anBw\nUL/73e+0ceNG7dixY7LfEsAkYX8Gwm/SV9Tt7e1asGCBJOnee+/VP/7xj8l+SwCThP0Zk2Xxxj9M\nyOtMxe/NJz2oA4GAEhMTQ49jY2N16dIl2e3f/9YpKa4xX5fDJJjqxrMfhNv17s/sy5hqIrFfTvqh\n78TERAWDwdDj4eHhUUMagLnYn4Hwm/SgzszMVEtLiyTp6NGjcrvdk/2WACYJ+zMQfjbLsqzJfIMr\nZ4l+/vnnsixLL730ku66667JfEsAk4T9GQi/SQ9qAABw47jgCQAABiOoAQAwGEEdQa+88opWrFih\npUuX6ve//32ky4mYoaEhbdy4UStXrpTP51NXV1ekS4qIY8eOKT8/X5J04sQJeb1e+Xw+VVRUaHh4\nOMLVhcc35+Cb3nzzTT366KPKz89Xfn6+/vWvf4W9tqGhIRUXF8vn82nZsmVqamoasX3//v16/PHH\ntWLFCjU2Noa9vvHUaMI8Xr58WZs2bdLKlSvl9Xr1+eefj9ge6Xkcq76IzKGFiPj444+tp59+2rp8\n+bIVCASsmpqaSJcUMR9++KG1YcMGy7Is6+DBg9YzzzwT4YrC79VXX7Uee+wxa/ny5ZZlWdbTTz9t\nffzxx5ZlWVZ5ebn1l7/8JZLlhcW35+CbNm7caP3973+PQFVXvf3229a2bdssy7Ks3t5ea+HChaFt\ng4OD1kMPPWR99dVX1sDAgLV06VKru7vbqBoty4x5/PDDD63S0lLLsv73/+DatWtD20yYx9Hqs6zI\nzCEr6gg5ePCg3G631q1bp7Vr12rRokWRLiliZs2apcuXL2t4eFiBQCAq/y43NTVVL7/8cuhxR0eH\nsrOzJUk5OTlqbW2NVGlh8+05+KaOjg69+uqr8nq9euWVV8Jc2f88/PDD+tnPfiZJsixLsbGxoW1d\nXV1KTU3V7bffLofDoaysLB05csSoGiUz5vGhhx7S1q1bJUmnT59WUlJSaJsJ8zhafVJk5jD6/kc0\nRG9vr06fPq3du3fr5MmTKigo0J///GfZbLZIlxZ206ZN06lTp/TII4+ot7dXu3fvjnRJYZeXl6eT\nJ0+GHluWFfpdcDqd6uvri1RpYfPtOfimRx99VD6fT4mJiXrmmWd04MAB5ebmhrU+p9Mp6X9XZ9uw\nYYMKCwtD2wKBgFwu14i+gUAgrPWNVaNkxjxKkt1uV0lJiT788EPV1NSE2k2Zx++rT4rMHLKijpDp\n06dr/vz5cjgcSktLU3x8vM6fPx/psiLizTff1Pz58/XBBx/oD3/4g0pLSzUwMBDpsiIqJubqrhkM\nBq/5VB9NLMvSU089peTkZDkcDi1cuFCffvppRGo5c+aMnnzySf3oRz/S4sWLQ+3fvmJbMBgcETjh\n9H01mjSPklRZWakPPvhA5eXlunDhgiSz5vG76ovUHBLUEZKVlaWPPvpIlmXp7NmzunjxoqZPnx7p\nsiIiKSkptDPefvvtunTpki5fvhzhqiJrzpw5amtrkyS1tLRo7ty5Ea4ocgKBgB577DEFg0FZlqW2\ntjbdc889Ya/j3LlzWrVqlYqLi7Vs2bIR2+666y6dOHFCX331lQYHB/W3v/1NGRkZRtVoyjy+++67\noUPGCQkJstlsoQ+mJszjaPVFag654EkE/eIXv1BbW5ssy1JRUVHorkTRJhgMavPmzeru7tbQ0JCe\nfPLJEStmWMdbAAAA0UlEQVSBaHHy5En9/Oc/V2Njo7744guVl5draGhIaWlp2rZt2zXfN05F35yD\nP/7xj7pw4YJWrFihd999V3V1dXI4HLr//vu1YcOGsNe2bds2/elPf1JaWlqobfny5bp48aJWrFih\n/fv36ze/+Y0sy9Ljjz+uJ554wrgaTZjHCxcuaNOmTTp37pwuXbqkNWvW6OLFi6F/60jP41j1RWIO\nCWoAAAzGoW8AAAxGUAMAYDCCGgAAgxHUAAAYjKAGAMBgBDUAAAYjqAEAMBhBDQCAwf4f7ajZDnlC\ne9sAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15bafed2208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18911\n"
     ]
    }
   ],
   "source": [
    "       \n",
    "plt.subplot(121)\n",
    "plt.hist(train.血糖,range=[4.5,10])\n",
    "#房价的分布图\n",
    "plt.subplot(122)\n",
    "plt.hist(np.log1p(train.血糖))\n",
    "#对房价进行对数log1p 是log(1+x)防止有0\n",
    "\n",
    "plt.show()\n",
    "print(len(train))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train.drop('id',axis=1,inplace=True)\n",
    "\n",
    "test.drop('id',axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "41\n",
      "18911 1000\n",
      "39 2\n",
      "Index(['性别', '体检日期'], dtype='object')\n",
      "Index(['年龄', '*天门冬氨酸氨基转换酶', '*丙氨酸氨基转换酶', '*碱性磷酸酶', '*r-谷氨酰基转换酶', '*总蛋白', '白蛋白',\n",
      "       '*球蛋白', '白球比例', '甘油三酯', '总胆固醇', '高密度脂蛋白胆固醇', '低密度脂蛋白胆固醇', '尿素', '肌酐',\n",
      "       '尿酸', '乙肝表面抗原', '乙肝表面抗体', '乙肝e抗原', '乙肝e抗体', '乙肝核心抗体', '白细胞计数', '红细胞计数',\n",
      "       '血红蛋白', '红细胞压积', '红细胞平均体积', '红细胞平均血红蛋白量', '红细胞平均血红蛋白浓度', '红细胞体积分布宽度',\n",
      "       '血小板计数', '血小板平均体积', '血小板体积分布宽度', '血小板比积', '中性粒细胞%', '淋巴细胞%', '单核细胞%',\n",
      "       '嗜酸细胞%', '嗜碱细胞%', '血糖'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "\n",
    "print(len(train.columns))\n",
    "print(len(train),len(test))\n",
    "\n",
    "numeric_feats=train.dtypes[train.dtypes!=\"object\"].index\n",
    "categorical_feats=train.dtypes[train.dtypes==\"object\"].index\n",
    "print(len(numeric_feats),len(categorical_feats))\n",
    "print(categorical_feats)\n",
    "print(numeric_feats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAFcCAYAAACJPguaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8FHWeP/5XXzm6O52DBFQwCopIEhHCPV/HazxAQcVB\n1CCDg8soKwKOuiAyAywIMoA6oMM4/h4eo6Cy47Hqeswsw4wuIuso6kqQUUQURMmd9Jm+fn90d6XT\nqe5UkTr6eD0fDx9WQqXqU0dXvz/vetenDOFwOAwiIiIiItKEUe8GEBERERHlEgbgREREREQaYgBO\nRERERKQhBuBERERERBpiAE5EREREpCEG4EREREREGmIATlln7ty5+OGHH5L++549ezBr1izRfxs2\nbJhazSIiymi8thIpx6x3A4iU9vjjj+vdhG7+53/+B3v37u32O7/fjxkzZmDQoEE4cuQItm/fDovF\n0m2eUaNG4bzzztOyqURESWXjtfXBBx/s8e/9+/fH9ddfDwB44YUXcPz48R7r+OUvf6n05lCOYQBO\naWf+/PmYMmUKJk2aBAC49tprsWrVKrhcLjz00EPwer1oa2vDPffcg8mTJ2PJkiVobW3F4cOHcc89\n92D16tX44x//iJKSEixduhQ//PADjh8/jjFjxuA3v/kNAKClpQW33HILjh8/jhEjRmD58uXIy8sT\n2uByufDv//7v+OKLLxAMBjF37lxMmTKlWzu3bt2K7du3d/vd+PHjsXTp0m6/69+/P+64445uv3O5\nXGhpaRF+vvXWW2Gz2brN889//vME9yARUU+8tkbEX1unTJmCs846K+m/jxo1KuW/E50oBuCUdq6+\n+mq89tprmDRpEr7++mv4fD5UV1djwYIFWL16Nc444wzs3r0ba9asweTJkwEAJSUl+P3vfw8AWL16\nNQDgb3/7G4YPH45Nmzahs7MTV155Jfbt2wcAOHLkCB555BGcdtppuPPOO/Hcc89h9uzZQhu2bNmC\n6upqrFu3Dk6nEzfccAPOPfdcnHrqqcI8M2fOxMyZM7XaLUREfcJrK1H6YABOaeeCCy7AqlWr4HQ6\n8frrr2Pq1KkAgPXr12Pnzp1466238Mknn8Dlcgl/M2LEiB7LmTJlCj799FM89dRT+Oqrr9Da2gq3\n2w0AGDNmDE4//XQAwNSpU/HSSy91+5J477334PV68eKLLwIA3G43vvjii25fElKzNERE6YDXVqL0\nwQCc0k5eXh4uvPBC/PWvf8Vbb72Fxx57DABQV1eH8ePHY/z48Zg4cSLuvvtu4W8KCgp6LOeZZ57B\n22+/jRkzZuBHP/oR/vnPfyIcDgMAzOauUz8cDnf7GQBCoRDWr1+P6upqAEBjYyOKi4u7zcMsDRFl\nEl5bidIHR0GhtHT11VfjySefRHFxMQYOHIjW1lZ8/fXXWLhwIS644ALs2rULwWAw5TJ27dqF66+/\nHldddRUMBgM+//xzhEIhAMCHH36I7777DqFQCK+88gp+9KMfdfvbCRMm4LnnngMAHD9+HFdddRWO\nHTumzsYSEWmE11ai9MAMOKWl0aNHo6OjAzfccAOASB3iddddhyuvvBJ2ux0jR46E1+sVbnuKmT17\nNlasWIEnnngCNpsNo0aNwpEjR1BZWYkzzzwTS5cuRUNDAyZMmIDp06d3+9v58+djxYoVmDJlCoLB\nIO655x5UVlae0LYcP34cb7/9drffxZ7Uj3nsscdEn9RPfPiHiKgveG3tfm19/fXXRUdBif373r17\nRdfBUVCorwzh2H0jIiIiIiJSHUtQiIiIiIg0xACciIiIiEhDDMCJiIiIiDSkagDe1NSECy64AAcP\nHsThw4dx4403oq6uDsuXLxeemCYiIuXx+ktElL5UC8D9fj9+/etfC2OIrl27FosWLcK2bdsQDoex\nY8cOtVZNRJTTeP0lIkpvqg1DuG7dOtxwww34wx/+AADYt28fxo0bBwA4//zzsWvXLlx66aUpl9HQ\n0KFW84iI0lZFRVGf/p7XXyKiE9PX669UqgTgL730EsrKyvDjH/9Y+AIIh8MwGAwAAJvNho6O3i/u\npaVWmM0mNZpIRJSVeP0lIkp/qgTgL774IgwGA3bv3o39+/dj8eLFaG5uFv7d5XLB4XD0upyWluQv\nAiAiylZ9ycDw+ktEdOIyOgO+detWYXrWrFlYsWIF1q9fjz179mD8+PF45513MGHCBDVWTUSU03j9\nJSJKf5oNQ7h48WJs3rwZ119/Pfx+Py6//HKtVk1ElNN4/SUiSi9p/Sp6PgRERLlIq1ugqfD6S0S5\nSKvrL1/EQ0RERESkIQbgREREREQaYgBORERERKQhBuBEIj7/vB6ff16vdzOIiIhUUV//GerrP9O7\nGTlLtTdhEmWy//zPFwEAZ59dpXNLiIiIlPfSS9sBAFVVNTq3JDcxA06U4PPP63HgwH4cOLCfWXAi\nIso69fWfYf/+fdi/fx+z4DphAE6UIJb9TpwmIiLKBrHsd+I0aYcBOBERERGRhhiAEyW4+uqfik4T\nERFlg2uvnSE6TdrhQ5hECc4+uwrDhg0XpomIiLJJVVUNhg+vFqZJewzAiUQw801ERNmMmW99GcLh\ncFjvRiTT0NChdxOIiDRXUVGkdxN4/SWinKTV9Zc14EREREREGmIATkRERESkIQbgREREREQaYgBO\nRERERKQhBuBERERERBpiAE5EREREpCEG4EREREREGmIATkRERESkIQbgREREREQaYgBORERERKQh\nBuBERERERBpiAE5EREREpCEG4EREREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERE\nRBoyq7XgYDCIZcuW4dChQzAYDFi5ciUCgQBuvfVWnH766QCAG2+8EVdccYVaTSAiyjm89hIRpT/V\nAvCdO3cCAJ5//nns2bMHDz30EC6++GL8/Oc/x5w5c9RaLRFRTuO1l4go/RnC4XBYrYUHAgGYzWa8\n/PLLeP/991FQUIBDhw4hGAzitNNOw9KlS2G325P+fUNDh1pNIyJKWxUVRX36+75eewFef4koN/X1\n+iuVqgE4ACxevBh/+ctfsGnTJvzwww8YNmwYampqsGXLFrS3t2Px4sVJ/zYQCMJsNqnZPCKirNSX\nay/A6y8RkZpUD8ABoKGhATNmzMDzzz+PAQMGAAC+/PJLrFq1Ck8//XSKv2MGhohyj1IZmBO99kb+\nltdfIso9WmXAVRsF5ZVXXsFjjz0GACgsLITBYMD8+fPx6aefAgB2796N6upqtVZPRJSTeO0lIkp/\nqmXA3W437r33XjQ2NiIQCGDu3Lk4+eSTsWrVKlgsFpSXl2PVqlWsASciStCXDIwS116A118iyk1Z\nUwPeF/wCIKJcpNUXQCq8/hJRLsr4EhQiIiIiIuqJATgRERERkYYYgBMRERERaYgBOBERERGRhhiA\nExERERFpiAE4EREREZGGGIATEREREWmIATgRERERkYYYgBMRERERaYgBOBERERGRhhiAExERERFp\niAE4EREREZGGGIATEREREWmIATgRERERkYYYgBMRERERaYgBOBERERGRhhiAExERERFpiAE4ERER\nEZGGGIATEREREWmIATgRERERkYYYgBMRERERaYgBOBERERGRhhiAExERERFpiAE4EREREZGGGIAT\nEREREWmIATgRERERkYYYgBMRERERaYgBOBERERGRhhiAExERERFpiAE4EREREZGGzGotOBgMYtmy\nZTh06BAMBgNWrlyJ/Px8LFmyBAaDAUOHDsXy5cthNLIPQESkFF57iYjSn2oB+M6dOwEAzz//PPbs\n2YOHHnoI4XAYixYtwvjx4/HrX/8aO3bswKWXXqpWE4iIcg6vvURE6U+1FMgll1yCVatWAQC+++47\nOBwO7Nu3D+PGjQMAnH/++XjvvffUWj0RUU7itZeIKP2plgEHALPZjMWLF+Mvf/kLNm3ahF27dsFg\nMAAAbDYbOjo6Uv59aakVZrNJzSYSEWWdvl57AV5/iYjUpGoADgDr1q3D3XffjRkzZsDn8wm/d7lc\ncDgcKf+2pcWtdvOIiNJORUVRn5fRl2svwOsvEeUmJa6/UqhWgvLKK6/gscceAwAUFhbCYDCgpqYG\ne/bsAQC88847GDNmjFqrJyLKSbz2EhGlP0M4HA6rsWC32417770XjY2NCAQCmDt3Ls444wz86le/\ngt/vx5AhQ7B69WqYTMlvcTY09H6blIgo2/QlA6PEtRfg9ZeIcpNWGXDVAnAl8AuAiHKRVl8AqfD6\nS0S5KONLUIiIiIiIqCcG4EREREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERERBpi\nAE5EREREpCEG4EREREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERERBpiAE5ERERE\npCEG4EREREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERERBpiAE5EREREpCEG4ERE\nREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERERBpiAE5EREREpCEG4EREREREGmIA\nTkRERESkIQbgREREREQaYgBORERERKQhsxoL9fv9WLp0KY4ePYrOzk7MmzcPJ598Mm699Vacfvrp\nAIAbb7wRV1xxhRqrJyLKWbz+EhGlP0M4HA4rvdAXX3wRn3/+Oe677z60trbimmuuwe23346Ojg7M\nmTNH8nIaGjqUbhoRUdqrqCg64b/l9ZeI6MT15forhyoBuMvlQjgcht1uR0tLC6ZPn47zzjsPhw4d\nQjAYxGmnnYalS5fCbrenXA6/AIgoF/XlC4DXXyKiE5fRAXiM0+nEvHnzMGPGDHR2dmLYsGGoqanB\nli1b0N7ejsWLF6f8+0AgCLPZpFbziIiyFq+/RETpS5UacAA4duwYbr/9dtTV1WHq1Klob2+Hw+EA\nAFx66aVYtWpVr8toaXGr1TwiorTV1wwMr79ERCdGqwy4KqOgNDY2Ys6cObjnnnswffp0AMAtt9yC\nTz/9FACwe/duVFdXq7FqIqKcxusvEVH6U6UEZfXq1XjzzTcxZMgQ4XeLFi3C+vXrYbFYUF5ejlWr\nVrEGkYhIRF8yMLz+EhGduKyoAe8rfgEQUS7S6gsgFV5/iSgXZXQJChERERERiWMArrFNmzZg06YN\nejeDiIiIctjGjQ9g48YH9G5GzlJtFBQS9/HHH+ndBCIiIspxH330gd5NyGnMgGsoPvPNLDgRERHp\nIT7zzSy4PhiAayg++81MOBEREekhPvvNTLg+GIATEREREWmIAbiGRo6sFZ0mIiIi0kpt7VjRadIO\nxwHX2Jw5dQCAJ57YpnNLiChdcRxwIlLbzJk/BQBs3fqizi1JL1pdfzkKisaY+SYiIiK9MfOtLwbg\nRERECoqNKnHXXUt0bglRcjw/9cUAXGMc/YSIKLtxVAki5WRrh5YPYWqI44ATEWU3jq9MpKyPPvog\nKzu1DMA1xHHAiYiyG8dXJlJONndoGYATERERUdrJ5g4tA3AiIiKFcHxlIpKCAbiG+CIeIqLsFv+g\nWLY9NEaktWzu0DIA19CCBXeLThMRUfaorR2bdcECkR6yuUPLYQg1xsw3EVF2y7ZAgUhP2dqZ5avo\niYjSDF9FT0SkD62uvyxBISIiIiLSEANwIiIiIiINMQAnIiIiItKQpIcwv/vuu6T/dsoppyjWGCIi\nIiKibCcpA/7CCy+gtLQUJSUl3f574YUX1G4fEREREVFWkZQBt1gsKCwsFP09ERERERFJxxpwIiIi\nIiINMQAnIiIiItIQA3AiIiIiIg1JqgEfNWoUvvzyS8RemmkwGBAOhzFq1ChVG0dERERElG1UeRW9\n3+/H0qVLcfToUXR2dmLevHk488wzsWTJEhgMBgwdOhTLly+H0Zg6Ac9XIRNRLurLq5B5/SUiOnFa\nvYpeUgb8oYcewtSpUxEOh2EwGAAA4XAYr7/+Ou68884e87/66qsoKSnB+vXr0draimuuuQZnn302\nFi1ahPHjx+PXv/41duzYgUsvvVTZrSEiynG8/hIRpT/JwxCeeeaZor8XM2nSJFx++eUAIoG6yWTC\nvn37MG7cOADA+eefj127dvELgIhIYbz+EhGlP0kBuFw2mw0A4HQ6sWDBAixatAjr1q0Tsuc2mw0d\nHb3f3iwttcJsNqnRRCKirMTrLxFR+lMlAAeAY8eO4fbbb0ddXR2mTp2K9evXC//mcrngcDh6XUZL\ni1ut5hERpa2+1iDy+ktEdGK0qgFXZRjCxsZGzJkzB/fccw+mT58OAKiqqsKePXsAAO+88w7GjBmj\nxqqJiHIar79EROlP0igo27dvR21tbY9hCPfu3YsZM2b0mH/16tV48803MWTIEOF39913H1avXg2/\n348hQ4Zg9erVMJlS397kU/hElIv6koHh9ZeI6MRplQFXZRhCpWTjF8CmTRsAAAsW3K1zS4goXWn1\nBZBKNl5/iUi+jRsfAADcddcSnVuijbQahpCU8/HHH+ndBCIiIiJJPvroA72bkJX4KnoNxbLfidNE\nRERE6SaW/U6cpr5jAK6h+Ow3M+FElK02bnyAX9ZEWSA++81MuLJYgkJERIriFzWRcnKtBjtXMAOu\nofixd6WMw0tElGl4y5pIWR999IFundra2rGi09R3DMA11N7eLjpNRJQteMuaSDl6d2jjs+7MwCuL\nJShEREREaSgdOrTMfKuDATgRESmmtnasECjwi5so86mV+c712naWoGho5Mha0WkiomzBW9ZEysnm\nGmw9a9vTAQNwIhGbNm3gWO1EceQMLVhbOzbrggUiPWRrh1bv2vZ0wBIUDXEc8MzB40PUnZxMVTYF\nCkR6y8bObDrUtuuNGXCiBHxjKVF3crNVuf4inlzfflLWXXctYac2CzEDrqGRI2uFzCprwNMX71QQ\ndSc3W5WrGa2YXN9+ot7wYW1mwDW1YMHdotNERNki12s7c337iaTI1tp2OZgB1xgz30SUaeRkq3K9\ntjPXt59IqlzNfMcwANcYM99ElGnuumsJZs78qTBNRNRXuX4tYQkKUQKHwyE6TZTLpA4tmM3jFkuR\n69tPRNIYwuFwWO9GJNPQ0KF3ExQXG1WDmfD0NmdOHQDgiSe26dwSykUVFUV6N6FP199Ytnzr1heV\nak5GyfXtp+ySSW+sVKKtWl1/WYKiMY6qQUTZLtczv7m+/ZQZpAarmfQsQya1lSUoGuL40pmBx4mo\nb3J93OJc3/5slI1ju0t5FXwmjeqTSW0FGIBriuNLZwYeJyIiiiclWAWA+vrPUF//mQYt6hupwWom\njeqTSW0FGIATERGRDjIlqywns/rSS9vx0kvb1W5Sn2VasJqNGIATERGR5qRmlfUmNVitr/8M+/fv\nw/79+zIiCy5FJo3qk0ltBRiAE/Vgs9lEp4mI9JIp2WKpMq1eV4r4zHe6Z8GlBquZ9MbKTGorwFFQ\niHoYNKgSBw7sF6aJiPSWCZliOdQqgYhlnquqahRbZq7LhGxyTCa1lQE4UYJAICA6TUSkh8RscSZk\n9/QSyzzrEYBfe+0M3H//cmE6ncnpAGXS+ZZJbWUJClGCgwe/EJ0mouySKWUd2fjAnMNRLDrdF2rV\nYEst16iqqsHw4dUYPryaGXjqFQNwDY0cWSs6TURE2suUhwCzUXt7m+h0X6hVgy2ntvjaa2ekffab\n0gMDcA3Fv36er6InItJPJj0EmA6jO2TK3QK11NaOlbTvq6pqmP0mSRiAa4hvWCQiSg+ZVNaRDqM7\nKH23QI1OhZrP72Tb203ToVOX61QNwD/55BPMmjULAFBfX48f//jHmDVrFmbNmoU33nhDzVWnJb5h\nkYi0wutvdpGagVWDGncL1OhUfPHFAdHpTKfG3Yd06NTlOtVGQXn88cfx6quvorCwEACwb98+/Pzn\nP8ecOXPUWiWRIkaOrBU6SKzVp0zE62/vamvHChndTMgA6hkkqXW3IBP2u5qkDpmo1h2aXN//elMt\nA15ZWYnNmzcLP3/22Wf429/+hpkzZ2Lp0qVwOp1qrZqoT1irT5mO19/eMQOov2wr65BLymvr1XxW\nIRv3fyY9q6BaBvzyyy/HkSNHhJ9HjBiB6667DjU1NdiyZQseffRRLF68OOUySkutMJtNajVRdxUV\nRXo3gZIYP348AB4jyky8/kpTWloKgJ/z3kycOBG7d+8WptN1f2VKO4FIidj+/fsAAN999xXOPfdc\n0fkS7z6k8zalg9j+yoT9pNmLeC699FI4HA5hetWqVb3+TUuLW+1m6aqhoUPvJlASt966EACPEelD\n6S8PXn/FtbS0AMiMz3ksq6dHxnL+/Luxe/dPhel03V+Z0k4AeOKJp7pNL1v275L+To9t0vPckyM+\n871kyX0n3F6tgnfNRkG55ZZb8OmnnwIAdu/ejerqaq1WTUSU03j97SmThiEE9B+zXM+HQOXIlHZK\nlQ6jlcg59/QsAcmkkY0ADTPgK1aswKpVq2CxWFBeXi4pA0NERH2XDddfpbNwmfRlnQ6vok/37GdM\nprRT6mvr77prCWbO/KkwrTW55166f5bSiaoB+KBBg7B9e+QBg+rqajz//PNqro6IiKKy7fqby1/s\nmdRZIGlir62PTaeiZ0Zfzrmnd0cx00Y24ot4iERs2rSBL0siShNqlIukw619Ul4mjYIh9bX1ckYr\nyaQSEKXbmmkjG2lWgkKUSfiiJKLu9HwQK1szwFL3aaZl9vSk1vmhxvmvxivr5Wy/lHHI1Tz31DhW\nmfT5YAacKEF85ptZcKIIvR8CVFo6BPVS92mmZfb0ouaDtZlw/svdfinjkMs59+TcVVLrWGXS2OYM\nwIkSxGe/mQkn0n/EkGwsF5G7T7NtdA81qNWp0vv8l0rO9tfXf4b9+/dh//59QiY8GannnpxgPR06\nwHpjAE5ERCnp/WWpRgZY76Be7j7NpMxeppBag6z3+a+G+My3lCy4lHNPrY5KJtX1y8EAnIiI0p7S\nGWCWdWRWYCOlrXI7VZlQViJHJnUq5bQ1245TDANwogSxNwYmThPlKr2/2AF1MsB6lnWkwz7NpMBG\nSlvldKoypawEkN5RkrP98aOvSBmJRWlS25pJx0kuBuBECYYMOVN0mihXZWu2WM+yDr33aSYFNnLa\nKrVTlUllJXI6SlK3/803Xxed7gu5nUopbc2k4yQXhyEkSsCHMIl6UitLq+fwhnquG8icF6zoTU5b\ns6mDCMh/uY3U7Vfj+Mt9a2e2HSu5GIATEVGv1Pqy1DP40zvwlLNP9e4sZJtMGVs9kzpKgPL7MlOO\n04lgCQoREelCzzKITCrBAOSVIWTKw5V6tlOt8a0zhcNRLDrdV0qXdeldqqUmBuBERKQLPbN7mZRZ\nlNtZyJSHK6W2U60A2Gazw2az9zrf5MlTRKe1oNa2t7e3iU6nI4ejWNFOQrpgAE5ERNQLOdna+vrP\nen25iRxyOgtSg3W9s7pyOhVqZEHr6z+Dy+WEy+Xs9VjJGTNbadmcAZaqvb0t7TsJJ4IBOFGCkSNr\nRaeJSFl6BoFqjhkt5RXfapEarKsV2EntfMi9AyF1dA+pHSU9g2q55AyXKXX79e6ASZVppWJyMAAn\nSnDZZVeIThORsjIluycnCJDziu8VK5ZixYqlva5frWBJjXHQ1ep8SK0tVqP8Jh3GzJYzuonUN6uK\nTaebTCoVk4sBOFGCRx99SHSaiLKHnC92OfPKyax+8cUBfPHFgZTzAOoFS0o/MCen86FGp0JOR0lO\nUF1VVYPhw6sxfHg1qqpq+tbIEyA1qy03W6xGB0zvB4D1Xr8cDMCJErhcLtFpolymxheb3MyyknXV\neovPfEvNgkt9uYnYtBbkdD7U6FTI6SjJDaqvvXaGLtlvQHpWW262WI0XUSl9B0LNUjG9MQAnIqJe\nqfHFJjezrGRpg5xh2OTMKzWzGp/5lpoFl/tyk97m17tTo/foFnKC6qqqGkmBupyOqpR51ayBVvr4\nq9FWOedzptWL80U8RESUkty38SktVtoQm1aiDEDOMGxy5o1lVmPTepAa1MY6NEq189prZ+D++5cL\n073Re2QLNY6PnE6q0llth6NY2KdSzgGlj79a9dpS7+RkWr04M+BERJSSFl+sqb5kM2nECkBaZnXo\n0GGi08nIyaxKGbZNTr22VHLKOtTIVuo9soecbVJj++V0FNU4/mpRo1QmHTAAJyIiXWTKSAxy3xq4\nefOD2Lz5wZTzrFixRnQ6GaklQFIDO7U6NVLLOtTo1Ol9PqnxYK9anQo1jr/eHaD4lypJecGS3hiA\nExFRSmp+sUp5uFDvYeDkvjVQ6otDhg4dJjn7LTYtRu/b8FJrpUkaOZ0Kk8kkOq0VvTtAlZWniU6n\nKwbgRESUkppfrFJuL6sxDJzcrLZU8+bNEZ0Ws2LFGsnZb7HpvtC7U6MGvR/Ck9NRlTOv1IdVg8Gg\n6LQYNY6/WvtfavlVpp3TDMCJiKhXaowZLEcgEEAgEFBseXKy2nKCJbnZcqVJbaveY1vLJSUI0zv7\nL6ejKmdeNV7FHn/M0/0hTKnlV5l2TjMAJyKiXun9IJTUl9aoQe9b63I6AHLaqufY1nJlyvjOUjuq\n8Q8+pnoIUq2sspw7NXqSu/2ZdE4zACciol7p+YY5vUsL5FCrtEUNetZry+lUSD3+ej8ECACTJ0/B\n5MlTep1P6kOQamWV1bhTo8b+l7v9mfQMAgNwIiLqlZ4ZSLlfwkp3FuR0ALZseUJ0ui/kbL/cofD0\n6tCoMWKI3ncqAOVfGCWH3h2QdNj/mYQBOBERpZRJGWhA+c6C3A6Anm94lBvYZkJZhxxqPasgpbMi\nZ2xtqQ8MyrmjIicAlrPcefPmSC5TkbP/pexTvTsVamIATkREKemdgVajXEFNW7Y8oVj2Wy1y95Oe\n2fJ0CMKkdFbkjK0t9YFBtR7qlXOnRs5DoHKeFZGyT7M5q65qAP7JJ59g1qxZAIDDhw/jxhtvRF1d\nHZYvX45QKKTmqomIcpqe11+lM6tyvoSldhYyqVZbDqnBqtxOldRjWl//ma5vVlQjq69Wp07pBwbl\nttNqtcHcIR2dAAAgAElEQVRqtaWcR62HNfXuKOvZoYxRLQB//PHHsWzZMvh8PgDA2rVrsWjRImzb\ntg3hcBg7duxQa9VERDlN6euvmhloKV+Eer+2W29qjYIilZz9r0YNtNTOglpBndT1yx2HWsoDg3KO\nvdxO1WmnnY7TTjs95TxyPydSA9t0OKZ6l1+pFoBXVlZi8+bNws/79u3DuHHjAADnn38+3nvvPbVW\nTUSU05S+/qqRgY6fR6mH8ID0KFdQmtygWkoNuhqBnZwaaDXuQOg9Drga41CrVYIh51jJoffzF1Lo\nnX2PMau14MsvvxxHjhwRfg6HwzAYDAAAm82Gjo6OXpdRWmqF2az961S1UlFRpHcTSAIeJ8o0alx/\nJ06cCED+5yHV/MuXLxemH3lkA1auXNnnZT7wwP247LLLhOlkJk6ciN27dwvTcrart3lj29Xb9kid\nb/LkycL0z342A2+++WbK+WOZSiX2k5hky33ttRe7TV9wwcRe2xibTtXW0tJStLS0CNNSj5VS1245\n58qcOTcrum6g67XyvS1TTjulHiu73Q6n0ylMK/V5LioqEq5DRUVFmh7TxKBer+941QLwREZjV7Ld\n5XLB4XD0+jctLW41m6S7hobevwRJfzxOpDWlvxCUuP7On383gN4/D7W1Y4UvuNrasSnnjwULselk\n8w4dOkx4Cc/QocMktaG3ts6ffzd27/6pMJ1qXjnbBHRtl1LzJb5iPNX88Rm9JUvuk5Q17W39Uvd/\na2t7t2k5185U88aC79h0snnlHiep5Jwrp5wyBICy3xux49/bMuW00+8PdptONm843H1aic8zAAwa\nVIn9+/cJ01of03iJy9QqINdsFJSqqirs2bMHAPDOO+9gzJgxWq2aiCinaXn9VeOWudlsFp3uK5PJ\nJGQXU5GzTVJvb+tdryxn/Wrtf73JeRBv6NBhGDp0mKLLlEKthyCl1qu7XE7R6b4KBAKi04nUuJ6k\nS5maZgH44sWLsXnzZlx//fXw+/24/PLLtVo1EVFO0/r6K3UsYLW+CKXWoQaDwW7Z5VSkju0tNQCW\nU9sa30mQ0mGQQs76XS6X6HQim80mOt1Xeo/sAkQ6HlI6H0rXQMt5CHLFiqWi02LUqFeXU9cfu6OS\nOJ1IjY5qugxtqGoAPmjQIGzfHnkaevDgwXj22WfxwgsvYO3atYpdRIiIqCc9r79SxwKW+kU4evRY\n0WkxUr+w5WYW5YyFrLRzz60VnRajZ3ZP7iggUuk9sovUBxb1frhPalAbI2UYRDlBtRojC8ntVEkd\nBlOtFzbJwRfxEBFRr9QaN1dKZvnDDz8QnRYj9QtbTrCgd2AlJwiRGqzKyapLzWzLyaqqMbSlWkP2\nSX3Bjt6jsMglZRhEtYbrVKujuHbtSqxd2/vD3HJeGKQWBuBERNQrObfW5by6Wkpm+ZtvDotOayXT\nAispnZrEBztTkVqvC0h/uYwaQ1uqVVqg9/knVfxLdXp7wQ4g73OqNKnHSk6gXl//GUKhEEKhkK4v\ng5KKATgREaUkNwMstVxD6nLlPAim9wNWUtevZjuVLpeRW9oghVp3FaS83RGQt/+lnn96n3tut0t0\nOhkp54ma2ySlDEROpyo+8y0lC643BuBERJSSnAywnNpqNTLLej9gJXX9Uufbtu1pSb+L0btcRuqb\nMNW6q+B2uyQFn3qfJ1KpFQBL/ZzK2U9y2yq1DERqvXYoFBKdTlcMwImISDFq1IzqnVmUQ04ALHVk\nFYvFIjotRo3AVur+V+vtilIfBJQzCkh8+5RqayaVKsn5nKbDA4vZiAE4ERHpQmpgp8Y43HKo9XCf\nlBKAurrZeOqp54Wfn3rqedTVzU75N0qTuv+lPqwo15YtT4hOJ5JTKqNWW5WWDkG91Ey1Wm2V+vyJ\nnBFb0gEDcCIiUoycL8HJk6eITieSE1SrEQRIbacccjsKFoul1+y3mpTOgqoxCoreMulOjZxRcNQa\nAUkKOcdeakctXTAAJyKilOSMrnDHHb8UnRaTKcO7qZEtlbtNxcUlKC4uUWTdgPxsoZQsqFrjgEvd\nV/FvquztrZVqtFWNjppa5IyCo2cGWs7nJFM6ajEMwImIKCU5oytkyq19OTJlGDpAehCkRq1+VVUN\nrFYrrFZrr+NLq9GpWrFijei0mKqqGlRWno7KytMVexOk3ue+GgGwnKBWrTHDpdK7oy4XA3AiItKF\n1Cyk3rf25QyDKJUar5cH1LsNL+UNg/X1n8HtdsPtdiv6EKbU459pGVClpcObKOWQUtqi92dfTQzA\niYhIMYcPfy06Laaqqgb9+w9A//4DUmYhv/zyn6LTYjLlQSw5JQBySB3dQ24HQMrwgnIywHKOk9SH\nQOUEi/X1n+Gbb77GN9983WtnwWg0ik4nUqsEJ1PIDZblvNwrGzEAJyIixch9GUhbWyva2lpTziMn\ns6f3bXC9PfPMk6LTieR0ANQYXlDOcVIjsy2ns5Bp40tnAqnHNNPKSuRgAE5EREnJfRGMHG+++Rp8\nPh98Ph/efPM1RZapBpvNLjrdF2qVoDQ2Hhed7gupwareD2HKycAeOLBfdLov9K4B15ucYFmNwDpT\n7n7FmPVuQLravn0rPvhgj6rruOeeBYota+zY8ZgxY6ZiyyMiUltiwDJ58tQ+L7O2dqzwha5Uzeii\nRffg/vuXC9OpOBzFQkY3VRCgVglKeXl/fPPN18K0Elwul+h0otiDjbHpdMasNumNGXAiIkqqrm42\ntm59Ufh569YXNX8RjJwMtBqvGK+qqoHNZofNZu81sNR7LOIjR74Rne6LY8eOik6nG73LFeTeAZg3\nb07K18BnGr0fmMy08jNmwJOYMWOm4hnlOXPquv28fv0mRZdPRJRJrFYb3G63MJ2MnAx0fEAzb96c\nPgfB27Y9jT17dsPv7wQALFx4G8aPnyjaCYnNG5Ns3mRlPUp0bNTI7Pr9ftHpRLEHG2PT6Z4FV9qb\nb77ebbq37e8tSBQ7T1Kdf0rbtu1pWCwW4ZhbLJaU5+lddy3BzJk/Faa1pOZnSi3MgGvoiSe2iU4T\nEaW78vIKlJdXKLrMxsYG0elEiYFNKmplwQKBAAKBgKR5jUZjytEyspXUGmg1nyvQk5wMfGJHMV3F\nv/yptxdB5fowkHIxA05ERGlNz9KCurrZqKubjYULbwMA/Pa3v+/zvHV1s3Hs2LFuterpmqnTO7Mo\ndf1qtDPxjoZSywWkdRTFzhMlMstS91XsfL755hsApD73gfT4nMYy8PFlc/FixzQ2nn+spE2ruwrx\ncq+LrrN+/crRr1+53s0gIso6mZRZ7a1WfeXK+7Bw4W3Cf83NTWhubur2u5Ur7xPm37btaSHwj6fl\n9kutga6rm93jtfHp2gEB0O3OT6q7QAaDQXS6L6Q+0yD33LdYLKLTYoqLS3rNfmea2OhLemIGnDKe\n2iPWcLQaIv3IrUON1JW7hOlky0ykZW1tTKrAp7m5CY1NDciPboIhOlJhhzdSquNLMhiJ1FFYpJKb\nWYyV3jz22CMAkmcWV6xYIywz1Wvj6+pm4913/95tm8SWJ+eugtwMMAChramywOFwWHRajNFoFGr0\neytX6i1AlivxmD711PN9Xqbcz6nUZYr9LtUyeyuTk3NHS23MgBMRkSKkZuHkZmul1qHW1c3G44//\nUfj58cf/mPTLWmpWU029ZRbzbcDoGwwYfYMB42dH/ov9nJ/Qt6irm43f/vb3PUZhSfawaGIGVKlM\neTgc7jX4jDGZTJLGQJc6sowaI+DEKPkMxLZtT8NuLxJ+ttuLUu5/KRnoExmtyGKxKBrcy6kXl0pO\npj7TMANOGU/pEWs2bdqAjz/+CAAwcmQtFiy4W7FlE1EXk8kkjIGdLBCTW4cKpB5RJX6ZUrKamUhK\n5ru4uER48FVKsKRGZrG0tKzXeeSSEqRJzerLITdbm5eXJzqtJSXLSk7kcyp1mUpm6tMJA3CiBAsW\n3C0MGcngm3LVypX3obm5Sfg5Np2YuS4r64fly+8HID2wEbu1/8c/pn5zoJxgwWq1SppPr8y32noL\n6NQIltQm9VjpWatsMBiE7H+qGvDY/o+NfqLk/tf7nFZj/2db5juGATiRiGz9wBNJ1dzchOamRpQV\nRoLZfGM0Qx0dtxsAmj1usT+VRcnXsCtJSgckvvORibLtwTq5lAxWEzufzz77p17/Rq/Md29OpPMt\nVexZATn14tl6nmZFAL5mzQq0tDTr3QxJYu1U8sE+tZSWlmHp0hV6N0MXSjy8RJTpygqt+O3lP036\n7wvfFs9wywls1ChDUEJzcxOamhpgiybTY/0ErydStuGK9j0Sg5XY3wLZFaznkr4cU6VGP9FTpPPd\nhOLCyGfTYswHAATdXbX9bZ6+xVxyS6D6Sk6n4pFHtHlJYlYE4C0tzWhqaoLBUqh3U3oVjj732tze\n98yRmsJ+j95NIKIcJicDrVa22mYF6q4SH6tg26shYV1NTQ2Ir3qJBeueaLDuThKspwoCXC4nfF7g\nw+fFH2j0uQBj0Clre/Qm9TjF/5vceZXI1kZGoGmEweYQfhc2RcKlJm/kjahhV7vo3yoxzLAaGWg5\nnYrYGNkx1jzxZyoS55MivvxMiRIoqeeUcEevIDLut3BHz+Xt+luvtp+nrAjAAcBgKYT9zKv0bkbW\ncH75qt5NICIdRQJAb9IsNxApQckPh1QJgCNfmA0oKYhkFPOMkUA05GoEALR6wz3mdURzMJZozBxw\nRwLgdpXzCVYrcNU1yf/91Vci/48F6wXRYF2IATxdbwH1yszNqJWBV+uYNjY1ArbogTJFDlSjNzqm\noqvrQEXm69mraYztIJc7YV5bwnxxB92VZMzGFAw2B6wzFyb9d/fW38peplSR86QJBfZIBtpoimSg\nXb6uc97rlJeBji3TYe2642SOLtfviSy33a1tJYESme+uwDrSWco3RsNaV6Sj1Ozt6iiVFdjx8GU3\nJ13Woj8/1ef2yJE1ATilP5YKqSOXS4UoPXTVixcAAPJj4xq7IxmlZk8kyyQnWASAkgIDVlxWILrO\nFX/2dvvZUQjceYV4Te1Db3SKrr+3DLTX25XpTuRyA8GQU3iTnlQFVuAn05OXKez4UyQYstnsCJk8\nGH2D+LwfPh+GrcAujBduimtGOBrYt/gigX0sUS4nqI4tF/ZIkAZTpB2NvmhA4/RJXmZsuZENK4Rl\n5hTRbfJvfb3rB5sVeXXTRecDgM5tcTXWNhvy625KOq9v27OS2yq0UyI17tQAQIG9DJfd9FDS9f75\n2Ttlb5PDWoZ/nZ684/C7P0U6HDabHQUGG5ZMeTjpvA+8vggmq0GVjprcZZYVOPDQT24XXdadOx6V\nvF6tZUUA7nK5EPZ7mbVVUNjvgcslbSxXqVpamtHU3AhjYfqfdqFotq3F06pzS1ILeQJ6N4GylM1m\nh81g7L0GPFp7UVZYgIcn/UR0vkVv7QDQlakuLeh6yDkvGquHXZHPWos38mBWJAMf7hFox7R6w8iH\nU5jX6+0KtBO1eYCCcGTepqYGFEUTsOboujvdXRnoDpnZ8ti6Y1luMW43EApF1u/1dgXZYrxuADID\ne5MdOOmm5K/1+P7ZrnKZSFAdvQabIu1o9LVEfnYmXE/s+TDfNF50mYFn98QtsxGwRTtKQlY77na+\nS/wYJuNyOQGvt3uQ3WMmN1zBkKz91FVaEhmDu6usJNKZCLs6hPWHvd6UWe6wqx2uYGSbG5uaYLAV\nR5dpiS4zEJ2v6zXzkfU3wWwvjc4b6TC2+iLHJ+Bskbwt8ctsamqCzRbJbJuiWW1v9A6Ry9UsbJPX\n6xOCbDHt7mYUhPJhs9nR5mnGA68vAgC4O6MvtoorRWnzNKPMGivtaEJpQWT9edF68XA0fmjxyk+6\nxZbZldWOXi9ckWtDfFY7k2keCU2bNg12e+QDM2jQIKxdu1brJpCOjIVmlE6q1LsZWaPlrW/0bgJl\nELnX32aPWyhBcXVGgltb3MgNzR43yqxWoVwlFmj3XI4X+eFIUF9aYMHGy4aJzgcAd/35gKxtkquo\nEJg7NflX3+OvRQInm80Ok9GTsga8oNB+QnWwUvlcXTXggehbs835Xf9WJH5zIDW7GaafDRb9p+Af\nDwnTkSDYJwTaPTh9cAVEtj1ffAQpYT95vd0z3d1m8sAVlJf4iQXrsSx3kpngCgZhs9lhsBWhoO5f\nRGfzbvv/ZK1bWH8cQ37PITBj8yTOayroWVsdm8fr9QlZbtG2OpuBQCRYttnKcFOd+IODz26Tfxc3\n8S6AP9pBMVm7Ojtl1n5CbXVpQRnWXvSg6LLu3flLAPLvfpUVOPDQRYtFl3nnznXCdOzakyzT3ext\nRz4iHxSf15uyzKTZ60Q+tEtqaRqA+3w+hMNhPPPMM4ou12azwRc0sAZcQc4vX4XNJm0sXalcLhdC\nvgCDRgWFPAG4QvLrGyn3yL3+Jn4J+6I1tba4pw3LrFbRh7aSiXxZ+lMG2S1eP/IRyQAXwpuyBMUY\nzX7abHbkGzwpS1DMVruQrY4F2WI6otlym80Ol7urBMUXTa7nR1fhcgMFhZF1G42eXmvACwujwYvR\n02sJiq3Q3mP/N7sjwUpRQb/o/yPH6NtvDyPo7cpyiwk60RUsewPdAu1unAHxoFpjNpsdHpOx1xIU\nW4FVVgcoltlOFmiHXR1wBf2R9Xu7Z+3Dvsj5b8jvGuzBZlO3A6Ykm82OPKOt1xIUS6GhR7lIqpcr\n/cu/3ASf1ycE2olavM3IR6TX2NzUhLL8rrrvfEP0w+SMvIyr2Zfed5yVpmkA/vnnn8Pj8WDOnDkI\nBAL45S9/iZEjRyqy7LDfkxElKOFg5CpuMKXn+J8xkVFQlA3AKXNs374Vf/7zm4ouMxRKHiCkI6Mx\n+S39E3HZZZMVfWOrXHKvv3K+hBcuvA2+uIDF1Rm5VWzL68qGnkiw0hpXguL2RzKjVotB+LeyuARi\nu6erBMUTDZYL87r+rUzm5SwxAHZ7IgFwQWG0Rrewa3QFt7t7CUr0ZgFiNwvcbqAwGrd53V0lKP7o\nfJa4rwOvO/KMotT9/y//krz2uS9sNjs85lDKEhRbfqRT4TEBlpvEy48AwP/sDtiio090C2wTezXR\n9QIAXO7uJSiiPSBrz2DZF71VkJ/fY3uknn9ideDN7kh5SllBdP0F5cJ8XlMBHDPvE11W+9b7YSsw\nC23wm60486bfiM775bP/Blt+9LpjtvVaA27LNwilJcky3S5XM4LBSKa83d3crQTFEy0tKYyWlrS7\nm9GvUF4NvFQulxNIuLlhsyR8KMNddwB8Xm+3THe8Zm+bkNW22eywIS91DbgtT1im0B6/N9qG7h18\nuc909IWmAXhBQQFuueUWXHfddfj6668xd+5cvPXWWzCbxZtRWmqF2dz7Sxr696+AyaTsl6VaGhsj\nT/CXl2p3kE+MHf369UNFRZFiS3Q4iuBtyIzhDUOdkR65MS89XxISz+EoUvQ4AUBhYXp3EDNRYWGe\n4sdJjr5ef2PXWLFtGDCgf7drsK8hUlPtKIrUcFYUOVBeXo7GRiMavN2vAS5/5LNms3Sty+GIzB+/\nzM7oMosdkTHGKxxAeXk5KiqKeqy/PTpvSVF03iII67cYPL2WoBQWOXqMBTxr1iwA6HEH4c477+zx\n/dMQXb/dXhH9f2T9ALrNG5vPYe8aN91h79queMn2v8PhgCdhn4aicYaxoPt8AOAx+1OWoDisDlRU\nFEXW54wrQYnWNCMaTMLpg8ka3RaXF/5no+VHvkjnq1spissLk63nMW2I1t5XRGuyYSsS3U/d541+\nd9rs4vs0OuZjhS2ud2azCcffa7KkLEFx2ApFx4FOdvxnzZqFsKsN7VsjHaawL7L+WClK2NUGk61C\n2KcBZxO+fPbfAADB6OgvsVKUgLMFJmvkXPA6G4QSFH90PktcyYrX2QyHtULSuOMGg6HHZwQAOhoi\nnZUCuyP6/wpZ5x4QOa8CCKYsQTE7TOjo6Oi1nbG2Sp0vtk8bvO1CCYorOoSyLTosdbO3HRWO/j3O\nPV+DK9r+rk5AhcMqnFNa0DQAHzx4ME477TQYDAYMHjwYJSUlaGhowMknnyw6f0uLtPGY7rnnV0o2\nU1WxUTUeeCD508XppKFB2odGCoejBMFgZmRBYw+OlBam+Ru4CiP7VcnjBABTp16HqVOvU3SZJP3z\npEag3tfrb+yzK7YNS5f+e7efY9naBx/8Xbffr1x5X49rQGe0DtRui3zWymxAcXGp5GU2NHRInnfh\nwtvQ4ekqQYkO6YyCuP5mhwfIs4Z6bGey7U9cd6r1y5lP6vqLi0t77NNmV2SfluZHs5n5kfmam5sA\nZ1wJijfS+UFBtPPjDCCYH9n2xOXGllmW7+i2zPi2AV2lMrHxliPLt8s6pmKU2KcLF96GsKtDKEEJ\n+yI9FUN+pKcSdnUgWJAveo5L3f/N7kgHpCzWUSnoh+Li0iT7NHICluRHP+/5/cT3qSsSKMfuOESm\n+wnLMxqtKWvACwoMss5Tqede7N9avM1CCYrLHwlsbZZIZ6HF24wyWz9YrTZ4Pd3Lelx+d3TeaBBs\nAKzWyN/Fz5sYVAMGWK020X3qa4600RbNepfZyrude7E3cSZu2/jxE5O+iVMtmgbgf/rTn/DPf/4T\nK1aswA8//ACn04mKCuVeBUvpLZOGyot1lNav1+aNWERqS4frr9hQZKlKW5SWWFrg9EaCxTxr1+/7\nWeUPRacnOft05cruZRJdQXUk6EN+17bLKUE6kfn00LOuPlLuUFYQLVcpyJd97OXsJzX26cKFt8Hl\nahZKUHy+SACcnx8JZF2uZhQUqHc+J+6vzuZIZ8EevVNRZuuXdJ/6mqMPdtsjHZAyu/i8vubIqCe2\n6IuR4pd5ovs0P6FESQ+aBuDTp0/HvffeixtvvBEGgwFr1qxJevuTiIiUw+vviX9ZZwtuf/Ztf49n\nFdzRspLoHYiCguQBsBL6sk/16NTFv4lTb5peffPy8rBx40YtV0lEREjf629np/jY3TGxW8bxQ5bp\ncbtYSbmyTYA+t/ZziZqdCr3PUznr17utJyK30h9ERKQaqV+C8XWY7e1tKeeNkXLLWI0vYTW/2PXa\nJjXJubXf1tb7sHOZsv2xdjY1RQZaUOvcA/reqZG7T5U8T+M/+0qu/0Tm1RsDcCIRfn/qrBxRrjiR\nAEhqaUt89jtZJvxEbhmr8SWs5DLV2KYTCWyUdCLb5Pf7Jc8rdfuVzJaeyD6VOoqHHGoFlb0tV+3P\nnpLrT6fSEqkYgBOJcLuljcBDlCukfLHGvgRXr/41AGDZsp4jLyTOF8uADxw4qM9foGp8CctZphrZ\nWjWDdb1u7W/b9nS39wzcfPMNuOyyyaLLlLv9amVLpQSLI0eOxv33LwcA3HrrfFRV1YjOK3WfqhVU\n6vk5ycRAWS0MwDUW+7Ih5WzfvhUffJDkdcknwO/vRCAQGaZs0aLbYLEoNyb22LHjdX0ZC5Fccr8w\n6+s/w/79+4TpZEFINtPjNrja2cpwWN4r4nsTn/2WkwlPRo1sqdx9+tJL27tN93buK3meZEqpDnVh\nAJ6E0kFdTOxCExvmTikM7JQTn/12u90oLuZLaYikkhOEXHvtDCFjeO21M1RvW4xatbWZkt07kWB1\n5syfAlBuJIr/+q9Xe/wuV6h5nmRSDXSuYwCuofjsd3t7GxyOYh1bkz1mzJipaOdj3bpVOHBgPwDg\njDOGYvHizHnRE1EmqaqqwfDh1cK01hisSLNx4wPdpu+6a4mOrUlfenUogczp/FEXBuBJKB3UAcCc\nOXXCtN/v50te0tTVV/8Uv/nNamGaiKSTG4RoHagADFbk+uijD0Sn+6K2dqywrNrasYosU296dygp\nszAAJ0pw9tlVGDZsuDBNRNLJDUIYqOSmu+5aIpS1ZFNGXY8OJWUmBuAacjgcaG9vF6YpfTHzTXTi\nGIRkFzWy1dla1sIOJUll1LsBuSQWfCdOU/o5++wqZr+JTlBVVQ0DkSwSHxwrFSirUdZClEmYASci\nIqKUsqVOmyhdMADX0MiRtfj444+EaSIiokygdIlINj6ESSSHIaz06PoKamjo0LsJiouNhPLEE9t0\nbgkRpauKiiK9m5CV119KL7GHMLdufVHnlhB10er6ywy4xpj5JiIiYuabchsz4EREaYYZcCIifWh1\n/eUoKEREREREGmIATkRERESkIQbgREREREQaYgBORERERKQhBuBERERERBpiAE5EREREpCEG4ERE\nREREGmIATkRERESkobR+EQ8RERERUbZhBpyIiIiISEMMwImIiIiINMQAnIiIiIhIQwzAiYiIiIg0\nxACciIiIiEhDDMCJiIiIiDRk1rsBueCll17C0aNHu/1u2rRpGDRokE4tIjE8TunP5/Ph3/7t33D8\n+HH4/X7ccccdCIfD2LRpE/Lz83HyySdj7dq1yM/P17upuvnkk0+wYcMGPPPMM9i/fz9WrVoFk8mE\nvLw8rFu3DuXl5QCA2267DfPmzcOGDRtw9913Y+XKlTAajcjLy8OgQYPwzTffwGg04owzzsDf//53\nDBo0CJ2dnXC5XCgqKsIPP/wAp9OJQCCA/v37o7y8HD/88AO+//575OfnY/To0WhoaMDBgwfhcDjg\n9Xrh9XpRWVmJsrIyfP755wgGg+js7ITVaoXT6cSIESNw5MgRBINBtLW1YciQIRgzZgxef/11eL1e\nYRuNRiOuuOIKvP/++wiFQmhra0NNTQ0GDhyIt99+G8FgEHl5efD5fAAAh8MBv98Pn8+HgQMHoqKi\nAgcOHEAgEOi2/lGjRuHw4cMIhUJobW3FkCFDMG7cOPz1r39FY2MjrFYr3G43QqEQSktLYTQaUVxc\njG+//RY1NTU4evQogsEgWlpaUFxcjLa2NpSWlqK4uBgulwvHjx/H4MGDRbcpHA6jrKwMPp8PXq8X\nwWAQ5557LhoaGvDdd9/BYDDAZDIhEAggHA6juLgYRqMR7e3tGDhwIMrLy/Hpp58iFAohFArBaDQi\nHA3SahsAABmmSURBVA7jv/7rv7Bs2TLU19fD5/Nh8ODBmDBhAv7zP/8THo9HWL/BYEBxcTE6Ozth\nNBrhdrtRU1PTbf1FRUXweDzo7OxEWVkZDAYD2tracOqpp6K0tLTH+kOhEKqqqvD9998Lx3Tw4MEA\ngKNHjyIQCAAAQqEQAKC4uBgWiwU2mw1Hjx5FTU2NcJ4Eg0HY7XY4nU7RfZp4nFwuF8LhMPr164eO\njg7hfKiursb+/fsRCoUQDAZRWFgIl8sFs9ksHLNAIJD03IvtJ5/PB6PRCI/Hk3I/9evXr9u5X1pa\nik8++QThcLjbfqqursb3338Pj8cDt9uNIUOGYMKECXjllVfg9XqFfWQymVBaWgqv1wu/349AIIBz\nzjkHra2tOHz4MAwGA8xmM/x+v3CemM1mtLa2pjz3+/fvj2AwCLfbDY/H02P749dvt9sRDAZhMBjg\ndrsxYsQIVFZW4o033uj22Uu1/tjn0WQyIRgMYtiwYWhoaEAgEEB7e3vS88RsNuOss87C4cOHUVFR\ngSNHjuCcc84R9n1jY6Mwr8PhwPnnn4/9+/fjyy+/xODBg/GjH/0IFosF//Ef/wEA8Hq9cDgcOO+8\n83D06FG43W40NTXhv//7v/H999/j5ptvRnt7O6xWK0pLS9HU1IRdu3ahubkZN954I1599VXk5+fj\nD3/4A959910AQHt7OxobG7Fr166U12pmwDUwevRo3HHHHd3+CwaDejeLEvA4pb8XXngB5eXleO65\n5/Doo4/ivvvuw/Lly7FlyxY899xzKC0txfbt2/Vupm4ef/xxLFu2TAg877//fvzqV7/CM888g0sv\nvRSPP/44AOC7775DS0sLli1bhm+//RbLli3DV199haVLl2Lbtm34+OOPMW7cOGzbtg0HDhyAyWTC\ntm3bMGrUKBw6dAhffPEFzjrrLHz44YcYOnQompubMX36dDQ3N6Oqqgo7d+7E7t278dVXX8FqtWLU\nqFGorKwEALS2tmLDhg3o7OyEzWbDgAED4PF4YDQaMWrUKNTW1goBkdvtxoEDBxAMBvHUU0/hpptu\nQigUQkFBAf7xj38gHA6jvb0dfr8fTz/9NHbu3Amj0YjKykqUl5fDYrFg5MiRsFgsKC8vRygUgtPp\nFNZvtVq7rX/06NGora2F0+kU1v/xxx+jqakJgwcPRl1dHUKhEKxWK6ZOnYphw4bh6NGj8Pv9eOCB\nB9DS0gIAGDBggBA0FBQU4NixY2htbUVeXl7SbSoqKsKVV16J+++/H6FQCOFwGNdeey2am5tRU1OD\nNWvWCAHI2LFjYbFYEAwGhW265JJLYDAY8JOf/ARXXnklAGDw4MG4/fbbcejQIfh8PmH9R44cgd/v\nx1NPPYUrrrgCoVAIBoMBY8aMwcMPPwy3241AINBt/bt374bL5UJnZydKSkpQW1sLAAgGg2htbcW0\nadMQDocxadIknHfeeTCbzUJwF79Pm5qakJeXB5vNhltuuQV5eXkwmUw466yzUFRUhOrqaiHouvrq\nqxEIBDBnzhxMnz4dbrc76T5NPE5ApON1ySWXYMCAAQgGg/D7/bj44osRDAYxb948zJs3D263GyaT\nCbNmzUJNTQ1CoVDK42QwGDB27Fj89re/hcfjSbqf/H4/bDZbj3M/dpwmTZokHKeCggK43W6MGjUK\nnZ2dMJlMcLvd+OqrrxAMBnH77bfjoosugsFgQElJCUKhEB5++GGhE/Gzn/0Mx48fx/Dhw7Fo0SIY\njUYYjUZMnDgRFosFAFKe+xaLBaNHj8aoUaNgMpmQn5/fbfvj12+322GxWPDwww/D5XIhGAyKfvZ6\nW7/FYkFpaSn69esndGx7O0+sViuGDh2KgwcPYsCAATh27BgCgQAeeOABuFwunHPOOZg6dSomTZoE\nm82GoqIiuN1ufPvtt8IxtdvteP/99/G73/0Or732GvLy8jBy5EiUlJRg3rx5CAaDaGhoAACsXbsW\nDzzwAD788ENcdNFFMJvNWLduHd59913MmTNHmA8AfvGLX+CZZ57BM888g5NOOgnr1q3r9XrNAJyI\nMsbVV1+NO++8E0AkE1NUVITnnnsOAwYMEH5ns9n0bKKuKisrsXnzZuHnBx98EMOHDwcQCZRidwZ2\n7tyJ8ePHY/PmzcjLy8PmzZvh9/uFoKq1tRWtra0AgDPOOEPIRrW2tqKkpASBQACjR4/GzTffjC++\n+AJFRUWYNGkSQqEQysrKEA6HYTKZUFxcjEAggEOHDuHMM89EKBRCYWEhdu7cCYPBgIkTJyIQCGDA\ngAEwm80488wzcc0118BoNMJut8NkMuGMM85AKBTCuHHjUF9fD7PZDJPJhDVr1ghf8EZj5Kuss7MT\nI0aMgNPphNVqRTAYxEUXXYSWlhace+65ACCsHwAmTJggrD8cDmPevHmYNm0arFYrLBYLTCYTysrK\nhPb83//9HyorK1FQUIB//dd/RXt7O/Lz82E0GvH3v/9d2Ka8vDwMHToUBoMBa9aswUUXXQSLxYKS\nkpKk22Q2m7Fw4UK8+uqrKCwshNFoxGWXXSbs048//li4Q3HVVVcJ2xrbJqPRCLPZjMOHD6OoqAhG\noxEnnXQSjhw5gnnz5sFoNKK0tBQmkwmDBg0S1r9//37YbDYEg0GsWbMGRqMRhYWFANBt/eFwGAaD\nAQaDAYMGDcK0adNw3333IRwOo7CwEH6/H3l5eTh48CAAwGKxIBAIwO12Y9q0aSgsLBQCqtgxam9v\nR+xdgCNGjIDP58OIESNgMplgMpng9/thsVjQ2toKi8UCh8ORdJ+KHSezOXKT/yc/+QmsVqsQmFos\nFjQ2NmLQoEGwWCwwGAy44447AEDIdCY7TkVFRUJnKLY/xPZTXl4eAPQ492PrP3jwoHCcRo4cCafT\niWnTpiEvLw8FBQUwmUw49dRTEQwG0d7ejra2NphMJvh8Pvh8PmzcuBEGgwFGoxF79+6F3+9Hv379\n0NzcLGS/H330Ufj9/m7HSezcB4CGhgYcOnQIgUAADoej2/Ynrh+AcJ4YDAYAgMfjwTnnnCN89npb\nf3l5OUwmEwoLC1FRUYHW1lZcc801wnVd7Dw56aST0NLSAqvVKhwrk8mEv//97wiFQjh8+DB+/OMf\no6WlBYWFhfB6vcLnOXZMa2trcejQIYwbNw6/+93vMHDgQPTr1w8LFy6E0WjE5s2bhevJvn37MG7c\nOACRzpzL5cJ5550Ho9GIJ598EiUlJT2uwX/+85+FjHpvGIATUcYoLi6G3W5HQ0MDfvGLX2DlypU4\n5ZRTAABPPvkkvvvuO1x11VU6t1I/l19+uRB0AED//v0BAB999BGeffZZ3HzzzQCAPXv24Pbbb4fZ\nbEZJSQnMZjPy8vLwv//7vwAipT6x8oRvvvkGxcXFcDqdePfddzF37lx0dnaioqICjzzyCDo7O1Fd\nXS0Ecfn5+ViwYAFOOeUUlJWV4ZRTTsEbb7yBU089FeFwGHfccQf27NmDgoICeDweOJ1OFBUVwWw2\nY8OGDdi4cSNCoRBcLhfmz5+Pb775BgaDAS6XC3v37sVll10mBLonnXQSPB4PiouLAUTKOGw2m/Bl\nHAqFUF5ejv79++Okk05COBzGFVdcgT179sBgMKCzs1NYPwDY7XZccsklwj6YP38+Ojs7hf25b98+\nXHfddQgEArj++uuFW/bFxcX44IMPhG0qKSlBfX09rFYrJkyYgCFDhiAcDqOlpSXpNoVCIfh8PiFb\nXVxcLHQi8vPzsWPHDoTDYVRWVmLDhg1wuVxoaWkRtmnv3r0IhUJwu914+eWXcdJJJ+HgwYMoLi7G\nhRdeiPz8fDQ2NmL+/Pl49913YTQasWTJEhw8eBCTJk0CABQVFeHcc8+F2+0WMo7xx9RgMMBms8Hj\n8eCSSy7Be++9BwDCMbVYLDhy5Ah27dqFiooKGAwGWCwWXHjhhejfvz88Hg8WLFiA999/HwDw17/+\nVbij4PP5YDabcfbZZwulIR988AFCoRB27dqFV155BR0dHUn3aeJxmj59OgKBAD788EOhs1RcXIxP\nPvkEFosFLS0tePnll4XA0Ov14ujRo8jPz095nMLhMNra2rBq1SohWBXbTwMHDhQ99/fu3QuLxQKX\ny4WXX34ZJ598MsrKyoQSmGAwCK/Xi/nz5+P999+H0WhEa2srPv74Y0ybNk24O/TUU08BiCQdYqVg\nDocDTqdTKNfZt28frFarUAqR7Nw3m82499578cYbb8BoNKKpqanb9sevPxwOw2KxoLq6GsFgECaT\nCUCkg19UVCR89qSsv729HQ6HA6WlpXA6ndi4cSPMZjPa29tFz5P8/HycffbZMJvNQqcvdp7E9pvd\nbsfevXsxfPhwmM1mXHjhhRg0aJBw7u/cuVPoJL399tuYPXu28HfnnnsufvWrX8HhcAjXk1gH4y9/\n+QuGDBkCAPh//+//obS0VPQa/Nhjj2H+/Pm9X6zBAJyIMtDvf/97zJ07V8hONDY24rXXXsPDDz/c\nLQAl4I033sDy5cvxhz/8AWVlZUK5RWKd/KmnnorHHnsMs2fPFupMPR6PcEt+1qxZGDhwoBDkV1dX\n42c/+xkKCwvR2dkpBOz/+Mc/cMUVV6C0tBRnnHEGrFYrjh07hrfffhsAcPHFF8NoNMJgMCAcDguZ\nW4/Hg61bt+LJJ58UsosXX3yxMD1jxgwUFBRgwoQJMJlMOHbsGF5++WUhUPR4PEJ9buxv8vPzcfHF\nF8Pv92PHjh0wmUz49NNP8cEHH8BsNgsZxNg0ABw7dky4DR5bf6wm2mKxCHXKTz/9NNra2mAwGFBQ\nUCBsk91uF8oaYlnQjo4OeDweWK3WlNv0/7d3/zFR138Ax5/3g/vJwR0cHqcCCigOAlxADAOvWW1t\nrp00bNKS5eE/lZuuda5/bDmrtbK2dLloFWvR2hplbq5u5MrQburKYbB0k4iphQpyx4/j5Mfdff9w\n954oav+EX+fr8d+xO96f94978/q8Pq/Ph6+++kplEJN9So6p2+1Gr9fT19fHF198oepRU1JSVJ+0\nWi2Dg4Okp6djtVq5evUqIyMjbN26lWg0SiwWo729HaPRiF6vZ+PGjTgcDg4dOqT63tTUhMFgICUl\nZVb7lZWVGI1GHnroIS5fvkxjYyM///zzTXO6YMEC8vLy+Oeff1Sd8+DgoCofaW9vR6vVEovFcLvd\nGI1GdDqdqtN/6623KCkpYWpqit9++w29Xs+jjz7K+++/z8zMjCppmGtMb5ynWCyGx+Nh06ZNmM1m\nNU+JRILjx49TWVmJwWDAYDAQCATweDyMjIzccZ60Wi1paWkYjcab1n5ynFasWHHLtZ9IJLh8+TLp\n6elkZWXhcDiYmJjg1VdfJTs7G41Go+ZJq9Vy+PBhdSKTHK9kWU4sFlMBrtPpVPXqHo+HlpYWhoaG\n6OzsnLVOblz7JpOJBx54gIGBAVXbfn3/r29fq9UyPT2Nz+fj8ccfJx6Ps2nTJjQaDRkZGeozd2o/\neQwpKSmcPn2ajIwMWltb1Qn0jetEr9cTCoX4448/CIVCnD59msLCwlnrJDU1lTNnzsy6ynP92tu/\nfz+ZmZnodDp6enpUGUxaWppa+16vV2XYk5nw3t5eTCYTbrf7tnttb28vaWlp5OXl/au9WQJwIcQ9\np6ysjFWrVqnXMzMzPP/88xJ83+DAgQO0tbXx+eefk5OTA0AwGKSmpuam946NjbF7924+++wz7HY7\nTqeTYDBILBYjGAzy2GOP8fTTTwPXSh42b96M3+/H7XZjtVoJBALE43Fqa2tZsGABWq2Wrq4uRkdH\n8fl8Knhpa2ujpqYGq9U6q4RDp9MxNTWFz+cjNzcXjUbDsWPHiMViKrNdV1fHiRMnMJvN+Hw+Vq1a\nRW5uLpOTkxw7dgyLxYLNZmNmZgatVsvy5ctpaWkhEomo9r1eL9u2bcNutzM2NqbaNxqNdHR04PP5\ncDgcGI1GlYHMycnh4sWLVFVV8cEHH6DX6/H5fHi9XjIzMxkfH6e6ulrVnV65cgWbzUZqaipDQ0Mc\nOHBABRG369NHH33ECy+8QEVFBZOTk3R0dKgxtVqt6qbP7u5uIpEI69evJ5FI4PV62bx5M9PT02Rn\nZ2M2m7HZbDz33HNUVFQwPj5ORkYGLpeLpqYmdYPanj17qKioYGpqCoPBQGNjI36/X91gen37ycBe\np9PhdrsJh8OUlZWRkpJCW1sbZrNZZSmT9864XC4yMjLw+XxYrVbS0tJYt24dly5dIi8vb1YGORwO\nE4lEKCgoYMmSJVgsFlavXo1Op8PpdHLw4EG0Wi1Wq3XOMb1xnk6cOEEsFiMQCOD3+9U4lJSUEI1G\nVZ+S83T48GECgQAlJSW3nadIJMLGjRvx+/3k5+cTj8fnHKdbrf3S0lKi0Sgul0uVpAwNDal67pqa\nGpxOJ01NTaSlpakbGTMzM+ns7MTtdjM2Nobf7+fSpUuYTCbWrl2LXq/H6XTS39+vSm3q6+vR6/WU\nlZWh1+tvufYjkQidnZ34fD5cLhcpKSmz+n99+1lZWYyOjuL3+zl//jw2m42mpiZsNhsOh0N99+7U\nvtFoVCfgFouF3NxcfD4fK1aswGg03rROHA4HHo8Hr9eLTqdjyZIlPPHEE1gsFrZs2YLdbqegoICv\nv/6a9PR0nE4nS5cuxefzUVlZidPp5OOPPyYcDlNYWMiePXuoqqqis7OToqIifD4ffr+fhoYGtScW\nFxdz/PhxgsEgJpOJysrK2+63wWCQ1atX/+v9WZNIFmCJ/0xrayvj4+OzfrZmzRpKSkru0hGJucg8\n3Ttee+01nn32WQoLCwH4/fffCQQCbN++/S4f2d134cIFXnrpJb788ktqampwu93qkmpVVRVDQ0O8\n+OKLuFwu9d733nuP5uZmTCYTZrOZoqIi/vzzT/r6+tSTJ7RaLYsWLSKRSHDu3DnGx8dnZdGnp6dV\nAJZ8ssCOHTvw+/3AtRrK0dFRAJYtW0ZOTg6//vor4XCYuro6Lly4wOjoKKFQCJPJpLLQCxcuVDWo\nyWx3MtuazDAPDAxgt9spLS0lFArR09NDZmYmCxYs4OzZs8TjcdUPgKKiIsrKyvjhhx8IhULU1dVx\n8eJFQqEQw8PD2Gw2QqGQyoJv2LCB5uZmFi9ejNvt5uTJk2g0GiwWC263mzNnzlBUVEReXh4DAwP0\n9PRQXFyMTqejvLyc9vZ2HA4HAwMD6HS6W/YpHA5TXl7O9PQ0PT09GAwGNaaRSEQFHv39/SowjEQi\nwLXyrImJCWKxmAqCiouLWbp0KUeOHCEajaqnTtTX13Px4kWOHj2qygn6+/tVUGYwGAiFQhiNxlnt\nW61Wtm/fzs6dO9FoNGRlZTE0NEQikaCgoIBwOMyVK1eIxWJYLBZycnIYHBxUWeXR0VF1ZWLZsmX0\n9PTMumqQSCRwOBzY7XZ6e3tZvnw50WiUUChEJBJh8eLFOByOOcf0xnkqLi7m0KFDpKenU1hYSDQa\npbu7G7vdrkpsIpEIZrOZ/Px8zp8/j06nY9GiRfT09NxynpLlUck6+eSY3ThOu3btmnPt22w2IpGI\nCriTWVar1aqy99FoFL1eT35+PoODg4TDYZWxttlsjI2NYTKZVMlRMos7NDSkSqIcDgfnzp0DrpWi\nDQ4Okkgk5lz7f//9NyMjI4RCIaxWKyMjIzd995Ltp6amqvZ1Oh2jo6NkZGRQW1tLf38/3d3dZGZm\nYrPZbtt+R0eHelpQsnZ9bGxM9X+udZI8AZycnCQej7Nw4ULOnj3LihUrWLlyJb29vZw8eRKz2Uxh\nYSF5eXkEg0EcDge9vb1YLBYaGxtpaGhg3bp1ZGVlUVVVhcViIRAIqBKTrq4ujh49yvDwMDt27KCv\nr49ly5bx6aefqpIbuBYffP/992of3LlzJw8//LAqY7sTCcCFEEIIIYSYR1KCIoQQQgghxDySAFwI\nIYQQQoh5JAG4EEIIIYQQ80gCcCGEEEIIIeaRBOBCCCGEEELMIwnAhbjBK6+8wjfffHO3D0MIIe4r\nsveK+4kE4EIIIYQQQswjCcDFfWHLli0EAgH1+qmnnuLEiRM0NjZSX1+vHqh/vQsXLrBmzRr1eu/e\nvezduxeAzs5O9TD/LVu2EAqF5qcjQghxD5G9V4i5SQAu7gter5fvvvsOgP7+fiYnJ2lra+P1119n\n//79vPHGG+zbt+9f/a7h4WHeffddPvnkE7799ltqa2vZvXv3f3n4QghxT5K9V4i56e/2AQgxHzwe\nD7t27WJ8fJyDBw/y5JNPsmnTJn766ScCgQCnTp1S/9L5Tk6dOsXAwABNTU0AxONx0tPT/8vDF0KI\ne5LsvULMTQJwcV8wGAw88sgj/PjjjwQCAVpaWnjmmWeorq6murqampoaXn755Vmf0Wg0JBIJ9Xpm\nZga9Xk8sFuPBBx/kww8/BGBycvJf/wERQoj7iey9QsxNSlDEfcPr9dLa2kp6ejpWq5X+/n62bt2K\nx+Phl19+IRaLzXp/WloaIyMjDA8PMzU1xZEjRwAoLy+nq6uLv/76C4B9+/bx9ttvz3t/hBDiXiB7\nrxA3kwy4uG9UVFQwNjbGhg0bsNvtrF+/nrVr15KamsrKlSu5evUqExMT6v02m43m5mYaGhrIzs6m\ntLQUgKysLN588022bdtGPB7H5XLxzjvv3K1uCSHE/zXZe4W4mSZx/XUeIYQQQgghxH9KSlCEEEII\nIYSYRxKACyGEEEIIMY8kABdCCCGEEGIeSQAuhBBCCCHEPJIAXAghhBBCiHkkAbgQQgghhBDzSAJw\nIYQQQggh5pEE4EIIIYQQQsyj/wEW3JJPNNOu/wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15ba6ab0198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "##查看类别特征与血糖\n",
    "categorical_feats=train.dtypes[train.dtypes==\"object\"].index\n",
    "\n",
    "import seaborn as sns \n",
    "for c in categorical_feats:\n",
    "    train[c]=train[c].astype('category')\n",
    "    if train[c].isnull().any():\n",
    "        train[c]=train[c].cat.add_categories([\"Missing\"])\n",
    "        train[c]=train[c].fillna(\"Missing\")\n",
    "        \n",
    "def boxplot(x,y,**kwargs):\n",
    "    sns.boxplot(x=x,y=y)\n",
    "f=pd.melt(train,id_vars=[\"血糖\"],value_vars=categorical_feats)\n",
    "g=sns.FacetGrid(f,col='variable',col_wrap=3,sharex=False,sharey=False,size=5)\n",
    "g=g.map(boxplot,\"value\",\"血糖\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#有一个点血糖太高了\n",
    "##删行\n",
    "###使用log得改值\n",
    "train.drop(train[train[\"血糖\"]>30].index,inplace=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "##性别有个多余的\n",
    "train.drop(train[(train['性别']=='??')].index,inplace=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "numeric_feats=numeric_feats.drop(\"血糖\")##对数值型特征进行可视化时，要把自己删喽"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "38\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x25c81368a20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "##查看数值型特征与血糖的关系\n",
    "\n",
    "def jointplot(x,y,**kwargs):\n",
    "    try:\n",
    "        sns.regplot(x=x,y=y)\n",
    "    except Exception:\n",
    "        print(x.value_counts())\n",
    "\n",
    "f=pd.melt(train,id_vars=[\"血糖\"],value_vars=numeric_feats[:1])\n",
    "# print(numeric_feats)\n",
    "print(len(numeric_feats))\n",
    "g=sns.FacetGrid(f,col='variable',col_wrap=4,sharex=False,sharey=False,size=5)\n",
    "g=g.map(jointplot,'value','血糖')\n",
    "plt.show()\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nOQZrIiIilfv/MPSlbt+q0lgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x25c8278aef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(np.abs(train['甘油三酯']-2.5),np.abs(train['血糖']-5.6))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['年龄', '*天门冬氨酸氨基转换酶', '*丙氨酸氨基转换酶', '*碱性磷酸酶', '*r-谷氨酰基转换酶', '*总蛋白', '白蛋白',\n",
      "       '*球蛋白', '白球比例', '甘油三酯', '总胆固醇', '高密度脂蛋白胆固醇', '低密度脂蛋白胆固醇', '尿素', '肌酐',\n",
      "       '尿酸', '乙肝表面抗原', '乙肝表面抗体', '乙肝e抗原', '乙肝e抗体', '乙肝核心抗体', '白细胞计数', '红细胞计数',\n",
      "       '血红蛋白', '红细胞压积', '红细胞平均体积', '红细胞平均血红蛋白量', '红细胞平均血红蛋白浓度', '红细胞体积分布宽度',\n",
      "       '血小板计数', '血小板平均体积', '血小板体积分布宽度', '血小板比积', '中性粒细胞%', '淋巴细胞%', '单核细胞%',\n",
      "       '嗜酸细胞%', '嗜碱细胞%'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "print(numeric_feats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train.drop(train[train[numeric_feats[1]]>200].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[2]]>250].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[3]]>270].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[4]]>400].index,inplace=True)\n",
    "\n",
    "train.drop(train[train[numeric_feats[5]]>95].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[7]]>50].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[7]]<10].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[8]]>6].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[9]]>20].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[10]]>10].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[16]]>1].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[18]]>7].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[21]]>20].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[27]]>380].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[29]]>550].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[32]]>0.6].index,inplace=True)\n",
    "\n",
    "train.drop(train[train[numeric_feats[34]]>70].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[35]]>20].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[36]]>14].index,inplace=True)\n",
    "train.drop(train[train[numeric_feats[37]]>2.2].index,inplace=True)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ntWuXJOnQoUN67LHH6n5/06ZNiwsWV2MWAAAArSmoVqvVRu9Eqzt6atY5s+/lrzHV+uLxOefMnx78\ne1OtE5/6mCnXc8c9plxi9oRz5syGraZambnnTbnUqUOmXNy5zjnz3cSlplrXzD5typU2bnfOpI99\n11SrcvAJU678ureacinDCE2sCzusExsv5e0nv+9e63u2418tl025IJk05aLXvMU5k5xzv45IUmJu\n2pQ73r3FlMum3WeEJoyL15LRgilXSmScM+XIdh53JSJTzvq6VZOG8crANos3ceaUKZe6zPb5dr79\nVe+2htb/6RPfbmj9s5jDDQAAAHhEww0AAAB4xKJJAAAAeMF9uGsY4QYAAAA8YoS7Caw//i3nzO1f\n/WtTrdsNmf921U+Yav3J/j835VQ+Y4td6r5ApP35Z0y1jmW3mHKXtM+YcopKzpHudttCM7mv4ZUk\nJcNjzplKr+0uPgnDIlLJtvhRkmbK7gu52o1X17RxH0uxcf27YSFXYssrL1gtSVI1NsUsC0mrbd2m\nWlG605TLJm3HJFN2f6NWMllTrTjVZsq1LYTOmXS6w1QrCtK2XHaDKZeQ+7kVxBVTrcBwbW0m3Baw\nhhFuAAAAwCMabgAAAMAjppQAAADACxZN1qyJhvvw4cMqFArasmWLtm3bpr1792pmpn6u7N13361c\nLqcDBw5o3759dT/bvn27du7cKUl66KGHvGQBAADQmtZEw33w4EE9/PDDyuVy2rNnj2666aa6R6pX\nKhUdOXJEuVxOnZ2dyufzdflisbj4331lAQAA0JrWRMO9Y8cO3XrrrZqentbWrVt1+PDhRu8SAABA\ny+MuJTVrouHu7e3V7t27G70bAAAAwDnWRMMNAACA5sOiyRpuCwgAAAB4tCZHuB999FElEj/4WyKO\nY+3atUuSdOjQIT322GN1v79p06bFxY6+sgAAAGhNa7Lhvueee170Z9dff72uv/76C54FAABoNc2+\naDKOY73vfe/TU089pUwmow984AN1d5x77LHH9JGPfESJREK7du3SnXfeaaqzJhtuAAAAYCX79u1T\nqVTSJz7xCe3fv1/33XefHnzwwcWff/CDH9SnPvUpdXZ26pZbbtEtt9yinp4e5zo03AAAAPCi2RdN\nPv7447rhhhskSddee62efPLJup9v3bpVMzMzSqVSqlarCoz/HhpuAAAAtKQwDJXNZhf/dzKZVKVS\nUSpVa5Gvvvpq7dq1Sx0dHbr55pvNDzPkLiUAAABoSdlsVrOzs4v/O47jxWb729/+tr7whS/oc5/7\nnAqFgk6cOKHPfOYzpjqMcDeBhb5XOWeif/igqdb886ecM3+y/89Ntd517TtNuftP/Ksplzo56Zwp\nXXyVqdbF8ydNueg7Xzfl0ldsdc5UO6umWoortli7+1/9qePPmGqVD3zVlvuvbzflEoZvEK1fo1aN\n3762J2JTLpifcc5UTx831Yqmj5lyQTptyiU63OdZJs64XyMlKaiUTLnZ3qtNuUQmu/IvvUBctV0T\n0sZrQind5ZypxLZ9bE9Eplxi3vZ6KzCMV0a241hNZky5ZpFo8ikl1113nT7/+c/rjW98o/bv369r\nrrlm8Wfd3d1qb29XW1ubksmkent7dfr0aVMdGm4AAAC0pJtvvllf+tKXdPvtt6tareree+/V3r17\nNTc3p9tuu0233Xab7rzzTqXTaV1xxRUaHh421aHhBgAAgBdBk98XMJFI6P3vf3/dtquu+sG333fc\ncYfuuOOOl17nJf8/AAAAAHhRNNwAAACARxd0Ssnhw4dVKBS0ZcsWbdu2TRdffPGSv3f69Gl99KMf\nrdvW3d2tt7/97ZJqNyk/cOBA3c937typ7du3N20WAACg1SSafErJhXJBG+6DBw/q4YcfVi6X0549\ne5ZtuH/u535u8bYsklQsFhf/+9VXX62dO3fWZc7+vFmzAAAAaE0XtOHesWOHbr31Vk1PT+uf//mf\n9aEPfUhzc3P6nd/5nboJ6gAAAFj9giSzl6UL3HD39vZq9+7dkqSxsTFdeeWVes973nMhdwEAAAC4\noBp6W8CXvexlkqTPfvaz+tu//VtJ0rvf/W5ddNFFjdwtAAAA4LxpaMOdSNS+ZnjDG96gN7zhDYvb\nJyfdnxgIAACA5tLs9+G+UJr2wTcPPPDAYkMu1Z5tf88990iSvva1r+mxxx6r+/0f/uEf1ubNm5s2\nCwAAgNYUVKvVaqN3otWdmZ93zkT/8EFTrfnnTzlnLvovP2aq9a5r32nK3X/iX025xPyMc6Z00eWm\nWqn5k6Zc9YnPmXLpK7Y6Zw5dtM1U67ITT5py5Q3XOGdSzz9rq3Xgq7bcf327KVeK3C+THSnbQqHA\nOBgUxJEpl37uKedM9fRxU61o+pgpF6TTppy2/2fnSOKM+zVSkoJKyZQ71Xu1KdduOL9i48d9ulox\n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\nAQAAAA/9PyHLj1xFWaPgAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15bafeeb908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['年龄', '*天门冬氨酸氨基转换酶', '*丙氨酸氨基转换酶', '*碱性磷酸酶', '*r-谷氨酰基转换酶', '*总蛋白', '白蛋白',\n",
      "       '*球蛋白', '白球比例', '甘油三酯', '总胆固醇', '高密度脂蛋白胆固醇', '低密度脂蛋白胆固醇', '尿素', '肌酐',\n",
      "       '尿酸', '乙肝表面抗原', '乙肝表面抗体', '乙肝e抗原', '乙肝e抗体', '乙肝核心抗体', '白细胞计数', '红细胞计数',\n",
      "       '血红蛋白', '红细胞压积', '红细胞平均体积', '红细胞平均血红蛋白量', '红细胞平均血红蛋白浓度', '红细胞体积分布宽度',\n",
      "       '血小板计数', '血小板平均体积', '血小板体积分布宽度', '血小板比积', '中性粒细胞%', '淋巴细胞%', '单核细胞%',\n",
      "       '嗜酸细胞%', '嗜碱细胞%', '血糖'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "\n",
    "\n",
    "plt.subplots(figsize=(12,12))\n",
    "corrmat=train.corr()\n",
    "g=sns.heatmap(corrmat)\n",
    "plt.show()\n",
    "print(corrmat.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['*天门冬氨酸氨基转换酶', '*总蛋白', '*球蛋白', '低密度脂蛋白胆固醇', '肌酐', '尿酸', '血红蛋白', '红细胞压积',\n",
      "       '红细胞平均血红蛋白量', '红细胞平均血红蛋白浓度', '中性粒细胞%', '淋巴细胞%'],\n",
      "      dtype='object')\n",
      "Index(['性别', '年龄', '体检日期', '*丙氨酸氨基转换酶', '*碱性磷酸酶', '*r-谷氨酰基转换酶', '白蛋白', '白球比例',\n",
      "       '甘油三酯', '总胆固醇', '高密度脂蛋白胆固醇', '尿素', '乙肝表面抗原', '乙肝表面抗体', '乙肝e抗原', '乙肝e抗体',\n",
      "       '乙肝核心抗体', '白细胞计数', '红细胞计数', '红细胞平均体积', '红细胞体积分布宽度', '血小板计数', '血小板平均体积',\n",
      "       '血小板体积分布宽度', '血小板比积', '单核细胞%', '嗜酸细胞%', '嗜碱细胞%', '血糖'],\n",
      "      dtype='object')\n",
      "Index(['性别', '年龄', '体检日期', '*丙氨酸氨基转换酶', '*碱性磷酸酶', '*r-谷氨酰基转换酶', '白蛋白', '白球比例',\n",
      "       '甘油三酯', '总胆固醇', '高密度脂蛋白胆固醇', '尿素', '乙肝表面抗原', '乙肝表面抗体', '乙肝e抗原', '乙肝e抗体',\n",
      "       '乙肝核心抗体', '白细胞计数', '红细胞计数', '红细胞平均体积', '红细胞体积分布宽度', '血小板计数', '血小板平均体积',\n",
      "       '血小板体积分布宽度', '血小板比积', '单核细胞%', '嗜酸细胞%', '嗜碱细胞%'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "\n",
    "\n",
    "print(corrmat.columns[[1,5,7,12,14,15,23,24,26,27,33,34]])\n",
    "train.drop(corrmat.columns[[1,5,7,12,14,15,23,24,26,27,33,34]],axis=1,inplace=True)\n",
    "test.drop(corrmat.columns[[1,5,7,12,14,15,23,24,26,27,33,34]],axis=1,inplace=True)\n",
    "print(train.columns)\n",
    "print(test.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "乙肝e抗体         13345\n",
       "乙肝核心抗体        13345\n",
       "乙肝表面抗原        13345\n",
       "乙肝表面抗体        13345\n",
       "乙肝e抗原         13345\n",
       "尿素             2661\n",
       "*碱性磷酸酶         1383\n",
       "*r-谷氨酰基转换酶     1383\n",
       "白蛋白            1383\n",
       "白球比例           1383\n",
       "*丙氨酸氨基转换酶      1383\n",
       "高密度脂蛋白胆固醇      1212\n",
       "总胆固醇           1212\n",
       "甘油三酯           1212\n",
       "血小板平均体积          92\n",
       "血小板体积分布宽度        92\n",
       "血小板比积            92\n",
       "白细胞计数            64\n",
       "嗜酸细胞%            64\n",
       "红细胞计数            64\n",
       "红细胞平均体积          64\n",
       "红细胞体积分布宽度        64\n",
       "血小板计数            64\n",
       "单核细胞%            64\n",
       "嗜碱细胞%            64\n",
       "dtype: int64"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "train.isnull().sum()[train.isnull().sum()>0].sort_values(ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# train.血糖=np.log1p(train.血糖)\n",
    "features=pd.concat([train,test],keys=['train','test'])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "fea_space=features['甘油三酯']\n",
    "features[\"甘油三酯type\"]=features[\"甘油三酯\"].map(lambda x:1 if x>0 else 0)\n",
    "# fea_space=features['*丙氨酸氨基转换酶']\n",
    "# features['*丙氨酸氨基转换酶type']=features['*丙氨酸氨基转换酶'].map(lambda x:1 if x>0 else 0)\n",
    "# features['尿素type']=features['尿素'].map(lambda x:1 if x>0 else 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "37\n"
     ]
    }
   ],
   "source": [
    "\n",
    "features=features.drop(train.columns[(train.isnull().sum()>=3000)],axis=1)\n",
    "print(len(features.columns))\n",
    "\n",
    "train=train.drop(train.columns[(train.isnull().sum()>=3000)],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18907\n",
      "Index(['*r-谷氨酰基转换酶', '*丙氨酸氨基转换酶', '*天门冬氨酸氨基转换酶', '*总蛋白', '*球蛋白', '*碱性磷酸酶',\n",
      "       '中性粒细胞%', '低密度脂蛋白胆固醇', '体检日期', '单核细胞%', '嗜碱细胞%', '嗜酸细胞%', '尿素', '尿酸',\n",
      "       '年龄', '性别', '总胆固醇', '淋巴细胞%', '甘油三酯', '白球比例', '白细胞计数', '白蛋白',\n",
      "       '红细胞体积分布宽度', '红细胞压积', '红细胞平均体积', '红细胞平均血红蛋白浓度', '红细胞平均血红蛋白量', '红细胞计数',\n",
      "       '肌酐', '血小板体积分布宽度', '血小板平均体积', '血小板比积', '血小板计数', '血红蛋白', '高密度脂蛋白胆固醇',\n",
      "       '甘油三酯type'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "###删完行，在列填充之前，将标签取出\n",
    "labels_all=features.pop(\"血糖\")\n",
    "labels=labels_all[:len(train)]\n",
    "print(len(labels))\n",
    "print(features.columns)\n",
    "labels.to_csv('E:/medical/data2/labels_26.csv',index_label='血糖')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#将数值的改成类别的\n",
    "nomial_feats=['嗜碱细胞%']\n",
    "for c in nomial_feats:\n",
    "    features[c] = features[c].astype('category')\n",
    "    if features[c].isnull().any():\n",
    "        features[c] = features[c].cat.add_categories([\"NA\"])\n",
    "        features[c] = features[c].fillna(\"NA\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train.drop('体检日期',axis=1,inplace=True)\n",
    "features.drop('体检日期',axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['体检日期', '嗜碱细胞%', '性别'], dtype='object')\n"
     ]
    }
   ],
   "source": [
    "    \n",
    "categorical_feats = features.dtypes[(features.dtypes==\"category\") |(features.dtypes=='object')].index\n",
    "print(categorical_feats)\n",
    "\n",
    "for col in categorical_feats:\n",
    "#     features[col]=features[col].cat.add_categories([\"NA\"])\n",
    "        features [col].fillna(\"NA\",inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*总蛋白\n",
      "*球蛋白\n",
      "*碱性磷酸酶\n",
      "中性粒细胞%\n",
      "低密度脂蛋白胆固醇\n",
      "单核细胞%\n",
      "嗜酸细胞%\n",
      "尿素\n",
      "尿酸\n",
      "年龄\n",
      "总胆固醇\n",
      "淋巴细胞%\n"
     ]
    }
   ],
   "source": [
    "numeric_feats = features.dtypes[(features.dtypes!=\"object\")&(features.dtypes!=\"category\")].index\n",
    "for col in numeric_feats:\n",
    "    if(col in features.columns[(train.isnull().sum()>=800)]):\n",
    "        print(col)\n",
    "        features[col] = features[col].fillna(-1)\n",
    "    else:\n",
    "        features[col] = features[col].fillna(features[col].mode()[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "##将类别型的转换为one-hot,这样才能使用sklearn中的算法进行训练\n",
    "category_feats = features.dtypes[(features.dtypes==\"category\") |(features.dtypes=='object')].index\n",
    "\n",
    "for col in category_feats:\n",
    "    for_dummy = features.pop(col)\n",
    "    extra_data = pd.get_dummies(for_dummy,prefix=col)\n",
    "    #print(col,\":\",extra_data.shape)\n",
    "    features = pd.concat([features, extra_data],axis=1)\n",
    "features.to_csv('E:/medical/data2/features1_1_26.csv')\n",
    "f_col=features.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-0.56190476  0.25888019  0.27454545 ...,  0.          0.          0.        ]\n",
      " [ 2.3839599   1.05057194  0.23909091 ...,  0.          0.          0.        ]\n",
      " [ 0.33734336 -0.21493076 -0.10181818 ...,  0.          0.          0.        ]\n",
      " ..., \n",
      " [-0.18145363 -0.33473811 -0.31272727 ...,  0.          0.          0.        ]\n",
      " [-0.53333333 -0.70559904  0.38272727 ...,  0.          1.         -1.        ]\n",
      " [ 0.         -0.33172787 -1.99454545 ...,  0.          1.         -1.        ]]\n"
     ]
    }
   ],
   "source": [
    "#标准化\n",
    "from sklearn.preprocessing import RobustScaler\n",
    "N = RobustScaler()\n",
    "\n",
    "features_for_train = N.fit_transform(features)\n",
    "print(features_for_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8552\n"
     ]
    }
   ],
   "source": [
    "train_labels=labels\n",
    "print(len(train_labels))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(8552,) 8552\n"
     ]
    }
   ],
   "source": [
    "from sklearn.utils import shuffle\n",
    "\n",
    "train_features = features[:train.shape[0]]\n",
    "\n",
    "test_features = features[train.shape[0]:]\n",
    "a=pd.DataFrame(test_features,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data2/test_A1.csv')\n",
    "# train_labels = train.values[:,-1].copy()\n",
    "train_labels=labels\n",
    "print(train_labels.shape,train.shape[0])\n",
    "# print(train_labels)\n",
    "\n",
    "train_features,train_labels = shuffle(train_features,train_labels,random_state=5)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "a=pd.DataFrame(train_features,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data2/train_A1_1_26.csv')\n",
    "b=pd.DataFrame(train_labels,index=None,columns=None)\n",
    "b.to_csv('E:/medical/data2/train_label_A1_1_26.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_labels=np.log1p(train_labels)\n",
    "# train_labels=np.log1p(train_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "train_labels=np.exp(train_labels)+1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#通过交叉验证获取模型的预测均方误差\n",
    "from sklearn.model_selection import cross_val_score\n",
    "\n",
    "def rmse_cv(model,X_train,y):\n",
    "    rmse = np.sqrt(-cross_val_score(model, X_train, y, \n",
    "                                    scoring=\"neg_mean_squared_error\",\n",
    "                                   cv = 7))\n",
    "    return rmse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.01215183  0.85737646  0.76966049  0.78624476  0.7271532   0.82082579\n",
      "  0.83592465]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestRegressor\n",
    "model=RandomForestRegressor(n_estimators=20)\n",
    "cv_rfr=rmse_cv(model,train_features,train_labels)\n",
    "print(cv_rfr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[  6.202    5.5645   5.2955   7.036    4.937    5.522    5.5465   5.282\n",
      "   6.289    7.604    4.8695   6.096    5.458    5.872    7.266    4.938\n",
      "   5.127    5.549    5.2575   8.56     5.4295   5.4035   7.4405   6.8015\n",
      "   5.811    5.6135   5.1725   5.1305   5.428    5.456    4.887    5.419\n",
      "   5.7495   7.3715   6.025    4.9425   5.969    6.038    5.451    6.156\n",
      "   5.8475   7.2645   5.6545   5.221    6.052    6.3625   4.9985   4.753\n",
      "   4.9195   5.607    4.8625   5.0965   4.91     4.851    4.8485   4.8285\n",
      "   5.2015   5.159    4.829    4.964    5.11     5.304    9.683    5.3025\n",
      "   5.1155   4.7665   4.8705   4.84     6.0475   5.9675   6.105    6.1325\n",
      "   5.8975   5.0455   6.097    5.7145   5.801    6.0745   7.8075   5.9235\n",
      "   7.8745   5.8925   5.8505   7.0865   6.065    5.686    5.8385   5.3765\n",
      "   6.182    5.9625   6.2035   6.376    6.6145   4.9955   5.6685   5.727\n",
      "   6.1825   6.164    6.2705   5.9115   5.5825   6.2675   6.1935   6.33\n",
      "   5.788    5.6275   5.3905   4.8625   5.4655   6.2475   5.655    6.5725\n",
      "   6.468    5.7895   6.6495   5.1255   5.2015   5.5005   5.6175   5.0975\n",
      "   7.4505   4.9075   5.2075   6.209    4.985    6.0585   5.344    6.093\n",
      "   6.058    5.1125   5.4165   6.1      6.7815   5.648    5.4755   5.973\n",
      "   5.2845   6.3005   5.5915   5.892    5.1885   5.5695   6.5875   6.3035\n",
      "   6.839    5.2555   6.575    5.632    5.7945   5.1205   5.1615   6.766\n",
      "   5.5775   7.2315   4.8435   6.8275   5.7065   6.755    6.044    5.24\n",
      "   5.4505   6.9065   9.648    5.138    5.049    5.971    4.9855   5.0515\n",
      "   6.2325   5.9795   5.6      5.2195   5.4165   8.6125   5.451    6.419\n",
      "   5.572    5.862    6.6625   5.8735   6.228    5.2155   5.5815   5.4575\n",
      "   6.648   10.2755   5.2725   5.7395   5.3135   7.118    5.3235   5.098\n",
      "   6.308    6.796    5.343    5.6105   5.349    7.2455   5.1645   6.8205\n",
      "   5.813    5.5525   4.822    5.5215   5.0705   5.12     6.5365   7.1595\n",
      "   7.1685   5.5335   6.1325   7.22     8.499    5.132    5.336    6.321\n",
      "   6.1465   5.451    7.1955   6.631    6.132    5.145    6.1775   5.143\n",
      "   6.4235   5.367    5.8965   5.8185   5.0565   4.913    4.737    4.885\n",
      "   4.99     8.0325   5.054    7.5695   6.3675   5.9685   5.9375   5.8905\n",
      "   6.322    6.0885   6.373    5.2645   6.2295   6.549    6.699    7.2945\n",
      "   5.543    5.707    5.572    5.258    7.8195   6.1775   6.1855   5.4745\n",
      "   5.25     5.4415   5.3775   5.0185   5.52     4.853    6.3835   4.928\n",
      "   7.15     6.721    5.6      7.0935   6.728    5.3695   6.19     5.222\n",
      "   6.0795   5.1925   6.031    5.388    6.4445   5.669    5.876    5.1425\n",
      "   5.2345   6.4015   5.896    5.688    6.091    5.1305   7.0075   5.6285\n",
      "   5.457    5.9585   5.783    5.6455   7.3895   6.4505   5.019    5.553\n",
      "   5.507    5.943    5.433    5.5385   5.2495   6.476    5.5375   8.4165\n",
      "   5.725    5.669    7.204    5.2535   7.1755   5.727    6.2365   6.16\n",
      "   4.877   11.516    5.14     5.3305   6.2      5.741    6.779    6.6515\n",
      "   5.811    5.0935   6.8625   5.7285   5.661    5.682    6.9035   5.163\n",
      "   5.6395   5.7805   8.42     5.6055   6.46     5.9255   5.783    6.0825\n",
      "   5.8005   5.6955   5.3095   6.4005   5.951    5.265    5.605    5.1865\n",
      "   5.4005   5.3305   4.9125   4.9105   5.2415   5.5955   4.9005   4.8985\n",
      "   5.623    5.4605   5.0535   5.2945   4.9925   5.2665   4.861    6.2205\n",
      "   4.9415   6.644    4.986    5.901    7.209    5.418    6.228    4.8785\n",
      "   6.331    5.3895   7.892    6.2375   6.085    5.0095   6.9835   4.9595\n",
      "   5.095    5.465    5.177    5.6195   5.098    6.4265   5.116    5.6755\n",
      "   4.965    5.0355   6.037    6.8685   5.2465   5.0985   5.641    7.737\n",
      "   6.57     4.822    5.9705   6.7155   5.506    4.9905   7.952    5.22\n",
      "   5.052    5.2305   5.4455   6.91     4.8935   6.662    5.3725   5.5635\n",
      "   7.2225   5.178    5.4575   5.504    5.9675   6.9085   5.4195   5.9615\n",
      "   5.095    5.847    5.243    9.9935   5.2055   5.4575   7.2735   5.604\n",
      "   5.267    5.9055   5.8375   5.7085   5.723    6.002    5.2875   5.4235\n",
      "   7.3895   6.254    8.1215   6.706    6.295    5.3185   6.3985   5.736\n",
      "   5.2735  10.177    5.888    5.256    5.3665   6.2975   7.632    5.9505\n",
      "   5.25     5.26     5.808    7.3225   5.1715   5.8895   5.231    6.335\n",
      "   5.963    5.3025   5.9695   5.8935   6.5195   5.7355   5.6365   5.5295\n",
      "   5.1645   6.585    6.492    5.2255   5.519    5.9765   5.137    5.112\n",
      "   5.3545   5.274    5.726    6.0885   5.328    5.036    5.5125   5.374\n",
      "   5.361    5.715    6.9055   5.0325   5.127    5.34     5.115    5.153\n",
      "   5.3125   5.157    5.2095   4.988    5.241    5.469    5.208    5.298\n",
      "   4.9405   5.19     5.125    5.124    4.9795   7.6095   5.2745   5.6135\n",
      "   4.966    5.104    5.103    5.2155   5.0275   5.247    5.3045   5.7365\n",
      "   5.9545   7.1235   5.893    5.89     5.312    6.4235   5.166    5.0535\n",
      "   5.7005   5.15     5.1445   5.1265   5.5145   5.231    5.082    5.261\n",
      "   4.9405   5.097    5.0775   5.124    5.2535   5.       5.188    4.9925\n",
      "   4.9405   5.2055   5.105    4.949    5.0105   5.789    6.296    5.098\n",
      "   6.093    5.833    5.12     6.2055   5.2365   7.36     5.974    5.7125\n",
      "   6.2595   5.1365   5.0435   5.479    4.949    6.024    5.575    5.361\n",
      "   5.426    6.141    5.9835   6.343    7.526    7.547    4.956    5.5705\n",
      "   6.5525   5.4355   5.774    6.1305   5.5995   4.934    4.9805   4.8025\n",
      "   7.5605   5.2515   5.4525   8.003    5.2735   4.853    5.5405   4.9745\n",
      "   5.673    5.1775   5.136    5.241    5.5075   7.0985   6.1265   6.02\n",
      "   5.8435   5.6565   5.075    5.8525   5.5765   5.5845   5.1175   4.9205\n",
      "   5.16     7.757    6.2935   5.2555   6.9355   5.603    5.681    7.8945\n",
      "   6.9345   5.9165   5.038    5.654    5.1485   5.844    5.357    5.8235\n",
      "   5.3165   5.463    5.1945   6.0355   5.2565   7.5155   5.452    5.659\n",
      "   4.916    5.3715   5.88     9.6315   9.079    5.7425   5.062    5.557\n",
      "   5.202    5.402    6.4915   5.839    6.366    5.359    6.986    5.901\n",
      "   8.4845   5.731    6.761    7.4195   5.024    5.986    5.61     7.257\n",
      "   8.029    6.694    5.0715   5.1545   5.533    5.435    6.633    5.3355\n",
      "   6.213    4.992    5.0245   6.077    6.5005   5.98     4.852    5.0425\n",
      "   4.9095   5.586    5.5495   6.0505   6.161    5.217    5.37     4.936\n",
      "   6.4605   5.059    5.778    5.0805   6.2965   4.9965   6.113    5.616\n",
      "   5.3045   5.4315   4.863    4.9665   7.928    5.5735   5.6725   5.7175\n",
      "   5.688    5.4955   4.7215   5.2295   5.0905   5.443    5.0905   4.7815\n",
      "   8.3155   5.0785   5.206    5.9025   4.7585   4.7595   4.9145   6.386\n",
      "   5.7905   5.2035   5.296    5.222    5.39     4.811    5.2235   4.9385\n",
      "   4.911    6.8045   5.367    6.189    5.55     5.3605   4.83     6.5985\n",
      "   6.015    7.769    7.986    5.3655   5.5095   6.7135   6.7365   5.5545\n",
      "   4.9565   4.884    6.219    6.3      6.1125   6.6525   5.843    6.9585\n",
      "   7.711    5.741    5.928    6.06     5.8755   5.0635   4.855    5.0045\n",
      "   6.8095   6.122    5.03     5.529    6.242    5.609    5.0795   4.998\n",
      "   5.2435   5.048    4.819    5.039    4.9885   5.2585   5.322    5.232\n",
      "   5.0495   5.1495   6.1455   5.6315   5.429    5.3705   4.995    5.2395\n",
      "   5.4485   6.7215   5.6055   6.281    5.3965   8.1455   6.289    4.9575\n",
      "   5.4815   5.318    5.4705   5.8635   7.245    5.399    5.761    5.4825\n",
      "   5.1325   5.1525   6.1425   4.8695   6.96     5.758    5.391    6.284\n",
      "   5.5735   5.739    6.7775   6.908    5.1935   5.8565   5.916    6.6175\n",
      "   5.857    5.288    5.368    4.99     5.2905   5.18     5.1835   5.162\n",
      "   6.317    5.8655   5.558    5.9055   5.333    5.0715   7.8965   5.7705\n",
      "   5.4845   6.914    5.9535   5.4845   5.0415   5.497    8.334    6.4405\n",
      "   6.48     5.6555   5.293    6.957    5.5185   6.5785   5.341    6.0165\n",
      "   6.139    5.376    5.8995   5.3025   5.2375   5.1225   5.4095   7.4295\n",
      "   7.136    6.2665   5.035    4.8965   7.779    7.3585   6.014    5.\n",
      "   5.579    5.445    5.2865   5.313    5.0445   5.305    4.997    5.3555\n",
      "   5.9385   5.27     7.459    6.898    5.234    5.54     6.0075   5.0105\n",
      "   5.0455   5.098    5.4545   5.237    5.109    5.0355   5.473    6.887\n",
      "   4.9855   6.367    5.9605   5.6515   6.0225   5.11     5.29     5.384\n",
      "   5.3125   6.0665   5.579    5.623    5.14     6.0375   5.2415   5.735\n",
      "   5.5195   5.4435   7.601    7.88     5.8715   5.2015   5.487    7.614\n",
      "   6.7805   5.793    6.089    4.9055   4.938    6.139    5.0685   5.646\n",
      "   5.7555   6.983    5.5055   5.185    5.4385   5.462    5.2795   5.5045\n",
      "   5.2175   6.9555   9.0225   5.527    5.5055   5.3775   5.284    5.113\n",
      "   5.3475   6.3715   5.349    5.925    5.2825   5.147    5.6605   6.3285\n",
      "   7.4135   5.3615   7.223    8.0355   5.5005   6.4795   7.0445   6.227\n",
      "   4.7555   5.707   11.348    5.356    5.9445   5.4025   4.995    5.71\n",
      "   5.099    5.8635   4.9805   5.4295   5.0095   4.8925   5.8305   8.5135\n",
      "   7.6975   9.137    6.0635   6.227    5.1115   6.5845   5.686    6.504\n",
      "   6.0405   5.7435   5.0645   6.411    5.2135   4.994    4.87     5.025\n",
      "   7.457    5.444    7.9375   6.789    6.61     7.3015   5.3465   6.3185\n",
      "   5.4645   5.67     6.422    5.067    5.9235   5.25     6.6895   5.2865\n",
      "   5.831    5.6095   4.9635   5.4675   6.0875   5.839    5.691    5.4545\n",
      "   5.325    6.7165   7.3355   5.9085   6.9965   8.061    4.9725   5.102 ]\n"
     ]
    }
   ],
   "source": [
    "model.fit(train_features,train_labels)\n",
    "pre_y=model.predict(test_features)\n",
    "print(pre_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "model_GBR=GradientBoostingRegressor(loss='ls',learning_rate=0.04,n_estimators=1000,subsample=0.8,min_samples_leaf=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.3007109   1.15224399  1.08199117  0.9862415   1.06358878  1.07001142\n",
      "  1.09950387]\n"
     ]
    }
   ],
   "source": [
    "cv_gbr=rmse_cv(model_GBR,train_features,train_labels)\n",
    "print(cv_gbr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "print(test_labels_gbr)\n",
    "print(min(test_labels_gbr),max(test_labels_gbr))\n",
    "pre_gbr=[ np.exp(t)-1 for t in test_labels_gbr]\n",
    "print(min(pre_gbr),max(pre_gbr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "a=pd.DataFrame(pre_gbr,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data/a_by_gbr.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import lightgbm as lgb \n",
    "\n",
    "\n",
    "LR=[0.01,0.03,0.1,0.15,0.3]\n",
    "NL=[12,20,30,50,60]\n",
    "FF=[0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85]\n",
    "MCS=[3,10,20,50,60]\n",
    "MCW=[0.001,0.003,0.01,0.03]\n",
    "model_lgb=lgb.LGBMRegressor(objective=\"regression\",n_estimators=300,eval_metric=\"l2\",min_child_samples=2,reg_alpha=0.001,reg_lambda=0.001,\n",
    "                           learning_rate=0.1,num_leaves=100,feature_fraction=0.75)\n",
    "lgb_rmse=[rmse_cv(lgb.LGBMRegressor(objective=\"regression\",n_estimators=300,eval_metric=\"l2\",min_child_samples=2,\n",
    "                          learning_rate=lr,num_leaves=100,feature_fraction=0.75),\n",
    "                  train_features,train_labels).mean() for lr in LR]\n",
    "print(lgb_rmse)\n",
    "lgb_rmse=pd.Series(lgb_rmse,index=LR)\n",
    "plt.plot(lgb_rmse)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_lgb=lgb.LGBMRegressor(objective=\"regression\",n_estimators=300,eval_metric=\"l2\",min_child_samples=2,reg_alpha=0.001,reg_lambda=0.001,\n",
    "                           learning_rate=0.1,num_leaves=100,feature_fraction=0.75)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_lgb.fit(train_features,train_labels)\n",
    "test_labels_lgb=model_lgb.predict(test_features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_lgb.fit(train_features[:-1000],train_labels[:-1000])\n",
    "test_labels_lgb=model_lgb.predict(train_features[-1000:])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "??lgb.LGBMRegressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4.55830805982 9.67054556141\n",
      "9.55852330535\n",
      "94.4218950342 15842.9905359\n",
      "1158415.58261\n"
     ]
    }
   ],
   "source": [
    "\n",
    "print(min(test_labels_lgb),max(test_labels_lgb))\n",
    "print(np.average(np.square(test_labels_lgb-train_labels[-1000:])))\n",
    "pre_lgb=[ np.exp(t)-1 for t in test_labels_lgb]\n",
    "print(min(pre_lgb),max(pre_lgb))\n",
    "print(np.average(np.square(pre_lgb-train_labels[-1000:])))\n",
    "a=pd.DataFrame(test_labels_lgb,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data2/validation_predict_1_26.csv')\n",
    "b=pd.DataFrame(train_labels[-1000:],index=None,columns=None)\n",
    "b.to_csv('E:/medical/data2/validation_real_1_26.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x15ba6316c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "542.707142098\n"
     ]
    }
   ],
   "source": [
    "plt.hist(test_labels_lgb,range=[4.5,10])\n",
    "plt.show()\n",
    "print(np.mean(pre_lgb))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "a=pd.DataFrame(test_labels_lgb,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data2/a_by_lgb_6.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "G:\\Program Files (x86)\\Anaconda3\\lib\\site-packages\\sklearn\\cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from xgboost import XGBRegressor\n",
    "xgb=XGBRegressor(max_depth=300,learning_rate=0.04,n_estimators=400,nthread=3,min_child_weight=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "xgb_rmse=rmse_cv(xgb,train_features,train_labels)\n",
    "print(xgb_rmse)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "xgb.fit(train_features,train_labels)\n",
    "test_labels_xgb=xgb.predict(test_features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "print(test_labels_xgb)\n",
    "pre_xgb=[ np.exp(t)-1 for t in test_labels_xgb]\n",
    "print(min(pre_xgb),max(pre_xgb))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ndDBmkJcvX66KigpJkuM4yszM1OXLl9XX16e2tjZNnz5djY2N6urqUklJiXw+n3w+nwoKCtTT06Pi\n4uJJOQkAAFLdmEHOycmRJEUiEb300kuqq6vT4OCgKisrNW/ePB05ckSHDh3S7NmzFQgE7vi8SCSS\n8Mnz87Pl9Wbe5ynYFAwGEh9k1ETOnsp7mUjsJT72Mjp2E18q72XMIEvSxx9/rI0bNyoUCmnFihW6\nceOGcnNzJUnLli1TU1OTSktLFY1GRz4nGo3eEejRDAx8fh+j2xUMBtTfH3Z7jHGbqNlTfS8Thb3E\nx15Gx27iS4W9jPUFw5ivsv7kk09UU1OjV155RatWrZIkrV+/Xl1dXZKkCxcuaO7cuSouLlZnZ6di\nsZjC4bB6e3tVVFSUxFMAACC9jXmFfPToUd24cUOHDx/W4cOHJUkNDQ3avXu3pkyZomnTpqmpqUl+\nv1/V1dUKhUJyHEf19fXKysqalBMAACAdeBzHcdx6cuu3FsZrrNsmNXvPTPI09+5Ew5IJedxUuJ3k\nBvYSH3sZHbuJLxX2Mu5b1gAAYHIQZAAADCDIAAAYQJABADCAIAMAYABBBgDAAIIMAIABCX91ZipJ\nhZ/xBQAgHq6QAQAwgCADAGAAQQYAwACCDACAAQQZAAADCDIAAAYQZAAADCDIAAAYQJABADCAIAMA\nYABBBgDAAIIMAIABBBkAAAMIMgAABhBkAAAMIMgAABhAkAEAMIAgAwBgAEEGAMAAggwAgAEEGQAA\nAwgyAAAGEGQAAAwgyAAAGECQAQAwwOv2ALCnZu8Zt0cY04mGJW6PAABJN2aQh4aG1NjYqKtXr2pw\ncFC1tbX60pe+pIaGBnk8Hs2aNUs7duxQRkaGWltb1dLSIq/Xq9raWi1evHiyzgEAgJQ3ZpBPnTql\nvLw87d+/X5999pmeffZZzZ49W3V1dVq4cKG2b9+utrY2zZ8/X83NzTp58qRisZhCoZDKysrk8/km\n6zwAAEhpYwZ5+fLlqqiokCQ5jqPMzEx1d3drwYIFkqTy8nKdO3dOGRkZKikpkc/nk8/nU0FBgXp6\nelRcXDzxZwAAQBoYM8g5OTmSpEgkopdeekl1dXXat2+fPB7PyMfD4bAikYgCgcAdnxeJRBI+eX5+\ntrzezPuZHw+gYDCQ+KAUk47nlAzsZXTsJr5U3kvCF3V9/PHH2rhxo0KhkFasWKH9+/ePfCwajSo3\n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\n/wP6aD7+JOaKEgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1cb9119ccf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(pre_xgb)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "a=pd.DataFrame(pre_xgb,index=None,columns=None)\n",
    "a.to_csv('E:/medical/data/a_by_xgb_我觉行.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.svm import SVR\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "??SVR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.17020554830988946, 0.16974734756598259, 0.16874063445484197, 0.16723726400513858, 0.16548320949429668, 0.16681287259470787]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1cb87262630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "Cs=[0.001,0.003,0.01,0.03,0.1,0.3]\n",
    "cv_svm=[rmse_cv(SVR(C=c,kernel='rbf'),train_features,train_labels).mean() for c in Cs]\n",
    "print(cv_svm)\n",
    "cv_svm=pd.Series(cv_svm,index=Cs)\n",
    "cv_svm.plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "svm_model=SVR(C=0.1,kernel='rbf')\n",
    "svm_model.fit(train_features,train_labels)\n",
    "test_labels_svr=svm_model.predict(test_features)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.89132403  1.88961893  1.85500052  1.87984075  1.85260757  1.89999062\n",
      "  1.88779644  1.8355829   1.88845363  1.88779363  1.84503375  1.91457208\n",
      "  1.89836021  1.88710283  1.928086    1.87720011  1.87399168  1.88446925\n",
      "  1.88173858  1.88779375  1.88779363  1.84129564  1.8883068   1.86107538\n",
      "  1.89234419  1.87510389  1.86731685  1.88769391  1.87981247  1.88721655\n",
      "  1.8945754   1.86685763  1.89368147  1.88828393  1.83403298  1.87193171\n",
      "  1.91417322  1.85011026  1.8847761   1.88321742  1.89710273  1.89258191\n",
      "  1.85677911  1.88443827  1.916035    1.89714567  1.85910327  1.88777072\n",
      "  1.8705003   1.83782912  1.85944601  1.8313759   1.85862449  1.82633321\n",
      "  1.86896067  1.86477395  1.82620616  1.88775563  1.86014725  1.88405523\n",
      "  1.84101774  1.86800474  1.88422803  1.87939098  1.81644583  1.83993374\n",
      "  1.81024496  1.85063261  1.8878165   1.88055302  1.88549453  1.9039039\n",
      "  1.88722987  1.88784591  1.89744611  1.85896048  1.86070773  1.89091163\n",
      "  1.91421765  1.91010479  1.8890482   1.88779355  1.88683624  1.88782682\n",
      "  1.88783167  1.89003262  1.90660985  1.87623236  1.89291379  1.88810415\n",
      "  1.8876592   1.92980719  1.9044071   1.88118534  1.87781674  1.91731689\n",
      "  1.88780816  1.8916026   1.89500862  1.88779096  1.86109917  1.86215959\n",
      "  1.88577698  1.90620934  1.89967751  1.88779452  1.88681176  1.88829964\n",
      "  1.88448378  1.88651415  1.90194866  1.88347209  1.89098947  1.89145671\n",
      "  1.8840111   1.86454549  1.87019927  1.89981973  1.89873851  1.81570171\n",
      "  1.88769323  1.88807105  1.84771305  1.89066353  1.88334197  1.8880004\n",
      "  1.85188338  1.88180571  1.92258155  1.83419466  1.8750432   1.88712211\n",
      "  1.89638628  1.88873936  1.78999748  1.88745026  1.88666428  1.88851336\n",
      "  1.88798949  1.88779737  1.84785474  1.88769104  1.88815729  1.88412608\n",
      "  1.88155729  1.85223412  1.88779365  1.88586967  1.88779361  1.87266414\n",
      "  1.88772854  1.88066432  1.87744496  1.88873268  1.86138696  1.88776166\n",
      "  1.88779361  1.84119223  1.90374366  1.88784452  1.88522667  1.87375532\n",
      "  1.88771997  1.84154216  1.88360661  1.89822087  1.85408256  1.88313126\n",
      "  1.89341565  1.88775253  1.89044298  1.86881556  1.85969706  1.88779363\n",
      "  1.87818355  1.89516922  1.88777805  1.89606701  1.8884103   1.88714559\n",
      "  1.8587241   1.88357481  1.88547105  1.88023611  1.88779363  1.88779363\n",
      "  1.88534874  1.89077229  1.86551166  1.88771939  1.88779387  1.84295128\n",
      "  1.88713021  1.88776688  1.87506789  1.88850461  1.83488419  1.89365328\n",
      "  1.85456454  1.90362549  1.87950676  1.8832953   1.82959143  1.91257716\n",
      "  1.88365761  1.86863556  1.88807954  1.89304446  1.88727859  1.90344044\n",
      "  1.85390366  1.88022473  1.88779363  1.85975112  1.88922768  1.90441443\n",
      "  1.88783694  1.90028487  1.88819037  1.89059188  1.91889898  1.88910763\n",
      "  1.88817357  1.90348404  1.88754309  1.87038512  1.88789535  1.888425\n",
      "  1.89015597  1.8304362   1.83828706  1.86624824  1.88767221  1.88779363\n",
      "  1.85612941  1.88779369  1.89506426  1.9044572   1.88790384  1.90513989\n",
      "  1.88855014  1.85759515  1.90383781  1.87391209  1.89844317  1.9112772\n",
      "  1.9087078   1.8975311   1.86158298  1.88700119  1.81757206  1.83856738\n",
      "  1.89351445  1.89623522  1.88779367  1.81946551  1.87563536  1.88661196\n",
      "  1.83157392  1.8549207   1.93818432  1.82959637  1.88778182  1.8598495\n",
      "  1.89242877  1.87992829  1.93160655  1.90568463  1.88808808  1.84474741\n",
      "  1.85491069  1.83154029  1.91354103  1.85792942  1.88820307  1.87394327\n",
      "  1.90050508  1.88618434  1.90514763  1.88779363  1.86171947  1.88779782\n",
      "  1.88765227  1.88166055  1.89393841  1.88306535  1.88779363  1.87105344\n",
      "  1.85928693  1.88697051  1.90551954  1.89082     1.90486391  1.88940016\n",
      "  1.84917322  1.8793521   1.88779111  1.89347606  1.84039685  1.82429539\n",
      "  1.88774528  1.88307677  1.88779364  1.88780032  1.88711802  1.87229684\n",
      "  1.8984212   1.87059255  1.92283123  1.81938734  1.94093709  1.88973511\n",
      "  1.83858138  1.88779363  1.8567033   1.86882873  1.8877865   1.88748415\n",
      "  1.90575     1.96969781  1.89801932  1.85422038  1.88778044  1.8649824\n",
      "  1.89466546  1.86817728  1.88815481  1.8437408   1.84962345  1.8881154\n",
      "  1.88779363  1.88911683  1.88429792  1.88653465  1.88781305  1.94484826\n",
      "  1.88706719  1.88190493  1.84210628  1.88779363  1.91749814  1.88462109\n",
      "  1.88779242  1.8551393   1.88533885  1.8447933   1.86254632  1.9028155\n",
      "  1.88390775  1.8955103   1.863966    1.84548743  1.91978441  1.90510257\n",
      "  1.82740098  1.89935335  1.88307029  1.88779325  1.82975288  1.88580314\n",
      "  1.87843378  1.8952255   1.83549961  1.88417226  1.90271505  1.88553378\n",
      "  1.89233176  1.80763184  1.86849523  1.85028479  1.88779363  1.89399419\n",
      "  1.90150996  1.88004901  1.90204565  1.85071269  1.86666051  1.86702335\n",
      "  1.88531276  1.88779361  1.85930487  1.91177144  1.84762158  1.92372047\n",
      "  1.84059687  1.89071291  1.82903139  1.88789814  1.87645535  1.82017211\n",
      "  1.88784547  1.91468311  1.88782985  1.8352373   1.88779363  1.89088455\n",
      "  1.88744399  1.88792909  1.8906936   1.88777045  1.85315076  1.88457444\n",
      "  1.88972198  1.88803539  1.84658871  1.88751681  1.88929598  1.86676308\n",
      "  1.89010376  1.88287623  1.88660708  1.85323484  1.89870631  1.88779359\n",
      "  1.88701845  1.89159289  1.86905864  1.9131654   1.88842136  1.88763549\n",
      "  1.88883712  1.86083123  1.92341097  1.88488816  1.8719918   1.88604674\n",
      "  1.88862364  1.87989394  1.86090115  1.86714747  1.86707767  1.86431349\n",
      "  1.8923888   1.8878053   1.88779363  1.89524364  1.89264273  1.88831457\n",
      "  1.901292    1.89445606  1.87923183  1.90270763  1.94319345  1.8795455\n",
      "  1.84233303  1.86020249  1.90139726  1.88020676  1.85277862  1.83166711\n",
      "  1.89646885  1.92401093  1.81501434  1.93027631  1.89168226  1.91506598\n",
      "  1.86633365  1.81565351  1.94794985  1.96139594  2.01329859  1.8625599\n",
      "  1.81166566  1.87895619  1.87270015  1.89749989  1.92429277  1.82380583\n",
      "  1.84897903  1.86266088  1.86141741  1.80847762  1.9169496   1.92462107\n",
      "  1.950869    1.94292543  1.84487828  1.79005282  1.83240307  1.857385\n",
      "  1.87769286  1.86211281  1.88787227  1.82447613  1.84543807  1.82563967\n",
      "  1.8297442   1.85106916  1.7791389   1.86673552  1.83989429  1.86035821\n",
      "  1.87427564  1.83843896  1.8752487   1.87426076  1.83031897  1.82693284\n",
      "  1.80080013  1.86185029  1.81882185  1.88708746  1.84920674  1.85974023\n",
      "  1.83058992  1.83442378  1.84837906  1.88691223  1.83427455  1.83407448\n",
      "  1.90494897  1.86909479  1.88983529  1.91016724  1.92227533  1.9111098\n",
      "  1.88598584  1.90023605  1.84660301  1.84763217  1.87619317  1.83433981\n",
      "  1.83034676  1.84961973  1.89203089  1.86419721  1.81255074  1.8314639\n",
      "  1.83400795  1.87379299  1.85169351  1.84671709  1.82591873  1.84025877\n",
      "  1.86910207  1.85742403  1.80788014  1.81975732  1.85770096  1.79509598\n",
      "  1.85946985  1.88809824  1.88736961  1.85276429  1.91044291  1.89686849\n",
      "  1.84044983  1.88854966  1.88773391  1.88779363  1.89451786  1.91611278\n",
      "  1.88536344  1.84151972  1.84433373  1.88443738  1.81285021  1.8877933\n",
      "  1.88823963  1.87768739  1.88363248  1.88814746  1.88620002  1.8874184\n",
      "  1.88802779  1.9044178   1.89533643  1.86139419  1.88736356  1.90495333\n",
      "  1.85585046  1.8877913   1.89215685  1.82595261  1.85880092  1.80269404\n",
      "  1.88887219  1.84745507  1.88201092  1.88779476  1.87532231  1.77521878\n",
      "  1.89693877  1.87840237  1.89230097  1.85567435  1.88467434  1.85529812\n",
      "  1.88926509  1.88009231  1.89764411  1.8748547   1.87954219  1.8853862\n",
      "  1.88776132  1.88778504  1.88853688  1.86390216  1.88217366  1.88732478\n",
      "  1.88657072  1.91294131  1.8848134   1.876253    1.88779363  1.88748156\n",
      "  1.88543223  1.88784128  1.90707795  1.88708776  1.83432374  1.88936642\n",
      "  1.88255844  1.88788032  1.87158227  1.93491549  1.88029171  1.88523072\n",
      "  1.87016327  1.88751482  1.88688978  1.8890019   1.8725002   1.81522085\n",
      "  1.86761288  1.89405162  1.89710746  1.87564568  1.88934449  1.88176911\n",
      "  1.88779362  1.92212759  1.8398527   1.88873792  1.89641343  1.88762996\n",
      "  1.86203132  1.79771817  1.90834339  1.88636647  1.87580484  1.88763953\n",
      "  1.88765664  1.90218089  1.85676322  1.91629686  1.89350116  1.89954237\n",
      "  1.88779362  1.89443363  1.87736162  1.91656742  1.90155437  1.85376844\n",
      "  1.88779363  1.87862829  1.88779363  1.83872296  1.86392117  1.88657848\n",
      "  1.87786086  1.90518821  1.8577499   1.85360512  1.87437078  1.79867598\n",
      "  1.92797875  1.88662717  1.8869936   1.86450583  1.87318347  1.87501401\n",
      "  1.90706862  1.87958199  1.88401843  1.83743951  1.89180768  1.88779048\n",
      "  1.88023811  1.88897264  1.87039236  1.8877931   1.84112148  1.88773954\n",
      "  1.9303681   1.8888462   1.88779364  1.87967104  1.88489298  1.83087774\n",
      "  1.80981135  1.90154593  1.80150782  1.88672679  1.85982254  1.8753832\n",
      "  1.88790084  1.88779363  1.86585502  1.86809622  1.85102965  1.88282316\n",
      "  1.88689287  1.88995918  1.91322064  1.8474099   1.88607966  1.86439215\n",
      "  1.86586378  1.87382952  1.84716761  1.88660134  1.81934448  1.93304033\n",
      "  1.86231405  1.92872148  1.87160737  1.88778544  1.87030035  1.88779728\n",
      "  1.89522656  1.88710022  1.89821567  1.88654707  1.88889611  1.87784046\n",
      "  1.89590573  1.91194611  1.86600127  1.89094233  1.89479325  1.89153014\n",
      "  1.88446898  1.88319075  1.86497069  1.88124813  1.8899563   1.90635836\n",
      "  1.93518742  1.89084346  1.8874793   1.85719414  1.88330026  1.87087641\n",
      "  1.88781105  1.87709931  1.86902026  1.88154986  1.9014862   1.89710334\n",
      "  1.87015163  1.88755768  1.88028412  1.88121805  1.87195086  1.88614587\n",
      "  1.85097279  1.82255512  1.85580442  1.8435462   1.85699343  1.82790632\n",
      "  1.89065125  1.92598547  1.88097153  1.90962412  1.88101634  1.87482086\n",
      "  1.8877966   1.88760999  1.8810411   1.88779129  1.8791734   1.90513276\n",
      "  1.91566527  1.82959097  1.95499323  1.81199241  1.8965866   1.86523847\n",
      "  1.88271197  1.8593436   1.90347253  1.89068603  1.8755416   1.88291818\n",
      "  1.88769909  1.88096916  1.88723232  1.86530986  1.84168688  1.88836759\n",
      "  1.89029325  1.91495942  1.87597736  1.90491297  1.85853388  1.88779349\n",
      "  1.88766526  1.87105853  1.89103123  1.88956339  1.88798796  1.88585638\n",
      "  1.88129996  1.88733871  1.88200258  1.84053322  1.8874936   1.88181626\n",
      "  1.8597344   1.87983808  1.87453318  1.87752466  1.86964759  1.88779363\n",
      "  1.8496579   1.89532307  1.88809727  1.87153131  1.88190496  1.88779353\n",
      "  1.88765843  1.88801468  1.88699123  1.928634    1.86640803  1.89146419\n",
      "  1.84296117  1.88587307  1.84641442  1.88761988  1.88030017  1.8655759\n",
      "  1.84229433  1.87105524  1.83946953  1.85908521  1.90127905  1.87133623\n",
      "  1.88345838  1.90763182  1.88776108  1.83640473  1.88779363  1.88779344\n",
      "  1.88782086  1.87753144  1.90500221  1.86949427  1.91092966  1.87172654\n",
      "  1.88282936  1.90630109  1.80445414  1.84819958  1.82362553  1.87353501\n",
      "  1.88862999  1.90302688  1.8607443   1.82794995  1.90105919  1.91931309\n",
      "  1.86549478  1.88779362  1.88318988  1.88794566  1.87285326  1.86974507\n",
      "  1.83565672  1.89992166  1.86416616  1.88778609  1.90968492  1.87858346\n",
      "  1.93558817  1.83682036  1.86536092  1.88607661  1.90433117  1.89855182\n",
      "  1.87244233  1.88581786  1.85329992  1.88119213  1.88779363  1.8472227\n",
      "  1.89588249  1.8877955   1.88519041  1.89208959  1.84355619  1.92158585\n",
      "  1.88124755  1.8900991   1.88711872  1.85927349  1.88791938  1.8732699\n",
      "  1.89422048  1.88913379  1.88413016  1.80797008  1.85115788  1.8878267\n",
      "  1.84659648  1.81694158  1.88950597  1.88824424  1.86535172  1.88681659\n",
      "  1.81855812  1.88781291  1.8878494   1.92271998  1.89261891  1.87317158\n",
      "  1.87179487  1.8484712   1.8836714   1.87693451  1.88756105  1.89105785\n",
      "  1.92071448  1.88553674  1.86865649  1.89086849  1.88891679  1.99031531\n",
      "  1.88779902  1.89123901  1.81497314  1.90453708  1.88375134  1.89241489\n",
      "  1.82951099  1.89833472  1.88804364  1.88379292  1.89120737  1.87034734\n",
      "  1.83652789  1.87658008  1.87203304  1.88789369  1.80422332  1.77654696\n",
      "  1.83213914  1.88779473  1.89908598  1.88779363  1.88928466  1.89485613\n",
      "  1.90543389  1.89608664  1.88865665  1.88723481  1.88781258  1.88779342\n",
      "  1.90584499  1.92559451  1.83316154  1.83910246  1.84960567  1.88698562\n",
      "  1.8843075   1.88737836  1.88997454  1.82573054  1.88926438  1.90078385\n",
      "  1.88779191  1.8873872   2.00567861  1.85071101  1.93633734  1.88202271\n",
      "  1.89233878  1.84142907  1.84783361  1.85527598  1.91808565  1.87891737\n",
      "  1.88720633  1.92793713  1.87355476  1.92127676  1.88431257  1.91365403\n",
      "  1.90024592  1.88264961  1.88105141  1.88823449  1.86958314  1.81269864\n",
      "  1.90103167  1.89826305  1.83847435  1.85339866]\n",
      "4.90157214306 6.48797638691\n"
     ]
    }
   ],
   "source": [
    "print(test_labels_svr)\n",
    "pre_svr=[ np.exp(t)-1 for t in test_labels_svr]\n",
    "print(min(pre_svr),max(pre_svr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "a=pd.DataFrame(pre_svr)\n",
    "a.to_csv('E:/medical/data/a_by_svr.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
